文書   >   Swift   >   Swift 標準ライブラリ   >   Collections   >   Supporting Types   >  PartialRangeFrom
汎用構造体
PartialRangeFrom
下限から上に延びる部分区間。
概観
postfix 範囲演算子 (postfix...) を使用して PartialRangeFrom インスタンスを作成します。
let atLeastFive = 5...
部分範囲を使用すると、値が特定の範囲の値に含まれているかどうかを素早く確認できます。例えば:
atLeastFive.contains(4) // false atLeastFive.contains(5) // true atLeastFive.contains(6) // true
コレクションのインデックスの部分範囲を使用して、部分範囲の下限からコレクションの最後まで上がっていく範囲を表すことができます。
let numbers = [10, 20, 30, 40, 50, 60, 70]
print(numbers[3...])
// Prints "[40, 50, 60, 70]"
部分範囲をシーケンスとして使用する
部分範囲が整数を下限および上限として使用する場合、または Strideable なプロトコルに整数のストライドを適用する他の型を使用する場合は、その範囲を for-in ループまたはそれを必要としない有限なシーケンスのシーケンスメソッドで使用できます。部分範囲の要素は、その下限からの連続した値が無限に上向きに続きます。
func isTheMagicNumber(_ x: Int) -> Bool {
return x == 3
}
for x in 1... {
if isTheMagicNumber(x) {
print("\(x) is the magic number!")
break
} else {
print("\(x) wasn't it...")
}
}
// "1 wasn't it..."
// "2 wasn't it..."
// "3 is the magic number!"
PartialRangeFrom シーケンスは無限に数え上げるため、map(_:)、filter(_:)、または suffix(_ :) など、返される前にシーケンス全体を読み取るメソッドを使用しないでください。prefix(_:) や dropFirst(_:) など、アクセスする要素の数に上限を設定する操作を使用することは安全です。また保証できる操作は、あなたが知っているクロージャを渡すなど、最終的に真(true) を first(where:) に返すなど、限られます。
以下の例では、asciiTable シーケンスは、大文字 A の ASCII 値である 65 から始まる部分範囲を持つ alphabet 文字列の文字を一緒に圧縮することによって作成されます。2 つの圧縮シーケンスに対する反復は、 2 つのシーケンスの短い方と同じ長さに過ぎないため、alphabet の最後に反復が停止します。
let alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
let asciiTable = zip(65..., alphabet)
for (code, letter) in asciiTable {
print(code, letter)
}
// "65 A"
// "66 B"
// "67 C"
// ...
// "89 Y"
// "90 Z"
インクリメント (増分) の動作は、Bound の型によって決まります。たとえば、シーケンスの次の値が Int.max を上回る時に、PartialRangeFrom<Int> トラップのインスタンスはトラップします。
トピックス
型エイリアス
typealias PartialRangeFrom.Element     Beta  
イニシャライザ
init(PartialRangeFrom<Bound>.Bound)
インスタンスプロパティ
var lazy: LazySequence<PartialRangeFrom<Bound>>
このシーケンスと同じ要素を含むシーケンスですが、map や filter などの一部の操作は遅延実装されています。
    Beta  
シーケンス内の要素の数以下の値。非破壊的に計算されます。
    Beta  
インスタンスメソッド
func allSatisfy((Bound) -> Bool) -> Bool
シーケンスのすべての要素が所定の述語を満たすかどうかを示すブール値を返します。
    Beta  
func compactMap<ElementOfResult>((Bound) -> ElementOfResult?) -> [ElementOfResult]
このシーケンスの各要素で、与えられた変換を呼び出す結果が nil でないものを含む配列を返します。
    Beta  
func contains(Bound) -> Bool
func contains(where: (Bound) -> Bool) -> Bool
シーケンスが、与えられた述語を満たす要素を含んでいるかどうかを示すブール値を返します。
    Beta  
func drop(while: (Bound) -> Bool) -> AnySequence<Bound>
与えられた predicate (述語) を満たす最初の連続した要素をスキップして、部分シークエンスを返します。
    Beta  
func dropFirst() -> AnySequence<Bound>
シーケンスの最初の要素を除くすべての要素を含む部分シーケンスを返します。
    Beta  
func dropFirst(Int) -> AnySequence<Bound>
与えられた数の初期要素を除くすべてを含む部分シーケンスを返します。
    Beta  
func dropLast() -> AnySequence<Bound>
シーケンスの最後の要素を除くすべての要素を含む部分シーケンスを返します。
    Beta  
func dropLast(Int) -> AnySequence<Bound>
与えられた数の最終要素を除くすべてを含む部分シーケンスを返します。
    Beta  
func elementsEqual<OtherSequence>(OtherSequence) -> Bool
このシーケンスと別のシーケンスに同じ要素が同じ順序で含まれているかどうかを示すブール値を返します。
    Beta  
与えられた predicate (述語) を等価テストとして使用して、このシーケンスと別のシーケンスに同じ順序で同じ要素が含まれているかどうかを示すブール値を返します。
    Beta  
func enumerated() -> EnumeratedSequence<PartialRangeFrom<Bound>>
ペア (n、x) のシーケンスを返します。ここで n はゼロから始まる連続する整数を表し、x はシーケンスの要素を表します。
    Beta  
func filter((Bound) -> Bool) -> [Bound]
与えられた predicate (述語) を満たすシーケンスの要素を順番に含む配列を返します。
    Beta  
func first(where: (Bound) -> Bool) -> Bound?
与えられた predicate (述語) を満たすシーケンスの最初の要素を返します。
    Beta  
func flatMap<SegmentOfResult>((Bound) -> SegmentOfResult) -> [SegmentOfResult.Element]
このシーケンスの各要素で与えられた変換を呼び出した連結結果を含む配列を返します。
    Beta  
func flatMap<ElementOfResult>((Bound) -> ElementOfResult?) -> [ElementOfResult]
このシーケンスの各要素で、与えられた変換を呼び出した結果が nil でない結果を含む配列を返します。
    廃止  
func forEach((Bound) -> Void)
for-in ループと同じ順序で、シーケンス内の各要素の与えられたクロージャを呼び出します。
    Beta  
func joined() -> FlattenSequence<PartialRangeFrom<Bound>>
連結されたこの一連のシーケンスの要素を返します。
    Beta  
func joined(separator: String) -> String
シーケンスの要素を連結し、各要素間に与えられた区切り文字を追加して新しい文字列を返します。
    Beta  
各要素の間に与えられた区切り文字を挿入して、この一連のシーケンスの連結要素を返します。
    Beta  
func lexicographicallyPrecedes<OtherSequence>(OtherSequence) -> Bool
要素が比較するために小なり演算子 (<) を使用して、シークエンスの順序が辞書の順序で別のシーケンスの前にあるかどうかを示すブール値を返します。
    Beta  
与えられた predicate (述語) を使用して、要素を比較する、辞書の順序でシーケンスが別のシーケンスの前にあるかどうかを示すブール値を返します。
    Beta  
func makeIterator() -> PartialRangeFrom<Bound>.Iterator
このシーケンスの iterator (反復子) を返します。
    Beta  
func map<T>((Bound) -> T) -> [T]
与えられたクロージャをシーケンスの要素にマッピングした結果を含む配列を返します。
    Beta  
シーケンス内の最大要素を返します。
    Beta  
func max(by: (Bound, Bound) -> Bool) -> Bound?
与えられた predicate (述語) を要素の比較として使用して、シーケンス内の最大要素を返します。
シーケンス内の最小要素を返します。
    Beta  
func min(by: (Bound, Bound) -> Bool) -> Bound?
与えられた predicate (述語) を要素の比較として使用して、シーケンス内の最小要素を返します。
    Beta  
func prefix(Int) -> AnySequence<Bound>
シーケンスの最初の要素を含む、指定された最大長までの部分シーケンスを返します。
    Beta  
func prefix(while: (Bound) -> Bool) -> AnySequence<Bound>
与えられた predicate (述語) を満たす最初の連続する要素を含む部分シーケンスを返します。
    Beta  
func reduce<Result>(Result, (Result, Bound) -> Result) -> Result
与えられたクロージャを使用してシーケンスの要素を結合した結果を返します。
    Beta  
func reduce<Result>(into: Result, (inout Result, Bound) -> ()) -> Result
与えられたクロージャを使用してシーケンスの要素を結合した結果を返します。
    Beta  
func relative<C>(to: C) -> Range<Bound>
このシーケンスの要素を逆の順序に含む配列を返します。
    Beta  
シャッフルされたシーケンスの要素を返します。
    Beta  
func shuffled<T>(using: inout T) -> [Bound]
与えられたジェネレータを乱数のソースとして使用して、シャッフルされたシーケンスの要素を返します。
    Beta  
並び替えられたシーケンスの要素を返します。
    Beta  
func sorted(by: (Bound, Bound) -> Bool) -> [Bound]
指定された predicate (述語) を要素の比較として並べ替えたシーケンスの要素を返します。
    Beta  
与えられた predicate (述語) を満たす要素を含まない、シーケンスの可能な最長の部分シーケンスを順番に返します。シーケンスを分割するために使用される要素は、いかなる部分シーケンスの一部としても返されません。
    Beta  
与えられた要素に等しい要素の周りで、シーケンスの可能な最長の部分シーケンスを順番に返します。
    Beta  
func starts<PossiblePrefix>(with: PossiblePrefix) -> Bool
シーケンスの最初の要素が別のシーケンスの要素と同じかどうかを示すブール値を返します。
    Beta  
与えられた predicate (述語) を等価テストとして使用して、シーケンスの最初の要素が別のシーケンスの要素と等しいかどうかを示すブール値を返します。
    Beta  
func suffix(Int) -> AnySequence<Bound>
シーケンスの最後の要素を含む、与えられた最大長までの部分シーケンスを返します。
    Beta  
演算子関数
static func ~= (PartialRangeFrom<Bound>, Bound) -> Bool
構造体
struct PartialRangeFrom.Iterator
PartialRangeFrom インスタンスの iterator (反復子) です。
    Beta  
関連
汎用の制約
Bound : Comparable
以下に準拠
以下も見よ
範囲の式
上限までの、それを含まない、上に向かう部分半開放の区間。
上限までの、それを含む部分区間。
コレクションをスライスするために使用できる型。
コレクションの範囲全体を表す範囲式。
このドキュメントには、開発中の API または技術に関する予備情報が含まれています。この情報は変更されることがあり、このドキュメントに従って実装されたソフトウェアは、最終的なオペレーティングシステムソフトウェアでテストする必要があります。