文書   >   Swift   >   Swift 標準ライブラリ   >   Collections   >   Range
汎用構造体
Range
下限から上限までの、上限を含まない半開放間隔。
宣言
struct Range<Bound> where Bound : Comparable
概要
半開放範囲演算子 (..<) を使用して Range インスタンスを作成して下さい。
let underFive = 0.0..<5.0
Range インスタンスを使用すると、特定の値の範囲に値が含まれているかどうかを素早く確認できます。 例えば:
underFive.contains(3.14) // true underFive.contains(6.28) // false underFive.contains(5.0) // false
Range を連続的な値のコレクションとして使用
範囲 (range) で整数をその下限および上限として使用する場合、または整数のストライドを使用して Strideable プロトコルに準拠するその他の型を使用する場合は、for-in ループまたはシーケンス、またはコレクションメソッドでその範囲を使用できます。範囲の要素は、その下限から上限までの、上限を含まない連続する値です。
for n in 3..<5 {
print(n)
}
// Prints "3"
// Prints "4"
Float や Double などの浮動小数点型は独自の Stride 型なので、それらをカウント可能な範囲の境界として使用することはできません。連続する浮動小数点値を反復処理する必要がある場合は、stride(from:to:by:) 関数を参照してください。
トピックス
Range (範囲)の作成
半開放範囲演算子 (..<) を使用して新しい範囲を作成します。
static func ..< (Self, Self) -> Range<Self>
下限を含み、上限を含まない半開放範囲を返します。
範囲の変換
func relative<C>(to: C) -> Range<Bound>
与えられたコレクション内のこの範囲式によって記述されるインデックスの範囲を返します。
init(ClosedRange<Range<Bound>.Bound>)
与えられた ClosedRange に等しいインスタンスを作成します。
範囲の検査
コレクションが空であるかどうかを示すブール値。
範囲に要素が含まれていないかどうかを示すブール値。
コレクション内の要素の数。
範囲の下限。
範囲の上限。
含んでいるかの確認
func contains(Bound) -> Bool
与えられた要素が範囲内に含まれるかどうかを示すブール値を返します。
func contains(where: (Bound) -> Bool) -> Bool
シーケンスに、与えられた predicate (述語) を満たす要素が含まれているかどうかを示すブール値を返します。
func allSatisfy((Bound) -> Bool) -> Bool
シーケンスのすべての要素が与えられた predicate (述語) を満たすかどうかを示すブール値を返します。
static func ~= (Range<Bound>, Bound) -> Bool
値が範囲に含まれるかどうかを示すブール値を返します。
範囲を固定する
func clamped(to: Range<Bound>) -> Range<Bound>
与えられた制限範囲に固定された、この範囲のコピーを返します。
要素へのアクセス
コレクションの最初の要素。
コレクションの最後の要素。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
subscript(Range<Bound>.Index) -> Range<Bound>.Element
指定された位置にある要素にアクセスします。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
subscript(Range<Range<Bound>.Index>) -> Range<Range<Bound>.Bound>
与えられた範囲で境界された部分シーケンスにアクセスします。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
subscript<R>(R) -> Range<Bound>
範囲式で指定されたコレクションの要素の連続した部分範囲にアクセスします。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
subscript((UnboundedRange_) -> ()) -> Range<Bound>
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
func randomElement() -> Bound?
コレクションのランダムな要素を返します。
func randomElement<T>(using: inout T) -> Bound?
与えられたジェネレータを乱数のソースとして使用して、コレクションのランダムな要素を返します。
要素の検索
func first(where: (Bound) -> Bool) -> Bound?
与えられた predicate (述語) を満たすシーケンスの最初の要素を返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
func firstIndex(of: Bound) -> Bound?
指定された値がコレクションに現れる最初のインデックスを返します。
Element が Equatable に準拠している場合に使用可能です。
func firstIndex(where: (Bound) -> Bool) -> Bound?
コレクションの要素が与えられた predicate (述語) を満たす最初のインデックスを返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
func last(where: (Bound) -> Bool) -> Bound?
与えられた predicate (述語) を満たすシーケンスの最後の要素を返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
func lastIndex(of: Bound) -> Bound?
指定された値がコレクションに現れる最後のインデックスを返します。
Element が Equatable に準拠している場合に使用可能です。
func lastIndex(where: (Bound) -> Bool) -> Bound?
与えられた predicate (述語) に一致するコレクション内の最後の要素のインデックスを返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
シーケンス内の最小要素を返します。
Element が Comparable に準拠している場合使用可能です。
func min(by: (Bound, Bound) -> Bool) -> Bound?
与えられた predicate (述語) を要素間の比較として使用して、シーケンス内の最小要素を返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
シーケンス内の最大要素を返します。
Element が Comparable に準拠している場合使用可能です。
func max(by: (Bound, Bound) -> Bool) -> Bound?
与えられた predicate (述語) を要素間の比較として使用して、シーケンス内の最大要素を返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
Foundation Range での作業
Bound が String.Index の場合使用可能。
Bound が Int の場合使用可能。
Bound が BinaryInteger に準拠している場合使用可能。
要素の選択
func filter((Bound) -> Bool) -> [Bound]
与えられた predicate (述語) を満たすシーケンスの要素を順番に含む配列を返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
func prefix(Int) -> Range<Bound>
コレクションの最初の要素を含む、指定された最大長までの部分シーケンスを返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
func prefix(through: Bound) -> Range<Bound>
コレクションの先頭から指定された位置までの部分シーケンスを返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
func prefix(upTo: Bound) -> Range<Bound>
コレクションの先頭から指定された位置を含まない、そこまでの部分シーケンスを返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
func prefix(while: (Bound) -> Bool) -> Range<Bound>
predicate (述語) が false を返し、残りの要素をスキップするまで、最初の要素を含む部分シーケンスを返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
func suffix(Int) -> Range<Bound>
コレクションの最後の要素を含む、与えられた最大長までの部分シーケンスを返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
func suffix(from: Bound) -> Range<Bound>
指定された位置からコレクションの最後までの部分シーケンスを返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
要素の除外
func dropFirst() -> Range<Bound>
シーケンスの最初の要素を除くすべての要素を含む部分シーケンスを返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
func dropFirst(Int) -> Range<Bound>
与えられた数の初めの要素を除くすべてを含む部分シーケンスを返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
func dropLast() -> Range<Bound>
シーケンスの最後の要素を除くすべての要素を含む部分シーケンスを返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
func dropLast(Int) -> Range<Bound>
指定された数の最後の要素を除くすべてを含む部分シーケンスを返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
func drop(while: (Bound) -> Bool) -> Range<Bound>
predicate (述語) が true を返し、残りの要素を返す間、要素をスキップして部分シーケンスを返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
コレクションの最初の要素を削除して返します。
コレクションの最後の要素を削除して返します。
コレクションの最初の要素を削除して返します。
指定された数の要素をコレクションの先頭から削除します。
コレクションの最後の要素を削除して返します。
与えられた数の要素をコレクションの末尾から削除します。
Range の要素を変換
func map<T>((Bound) -> T) -> [T]
与えられたクロージャをシーケンスの要素にマッピングした結果を含む配列を返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
func map<T>((Bound) -> T) -> [T]
与えられたクロージャをシーケンスの要素にマッピングした結果を含む配列を返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
func compactMap<ElementOfResult>((Bound) -> ElementOfResult?) -> [ElementOfResult]
このシーケンスの各要素で、与えられた変換を呼び出した結果が nil でない結果を含む配列を返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
func flatMap((Bound) -> String?) -> [String]
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
    廃止  
func reduce<Result>(Result, (Result, Bound) -> Result) -> Result
与えられたクロージャを使用してシーケンスの要素を結合した結果を返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
func reduce<Result>(into: Result, (inout Result, Bound) -> ()) -> Result
与えられたクロージャを使用してシーケンスの要素を結合した結果を返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
var lazy: LazyCollection<Range<Bound>>
このコレクションへのビューで、map や filter などの通常の操作の遅延した実装を提供します。
var lazy: LazySequence<Range<Bound>>
このシーケンスと同じ要素を含むシーケンスですが、map や filter などの一部の操作は遅延して実装されています。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
Range の要素を繰り返し処理
func forEach((Bound) -> Void)
for-in ループと同じ順序で、シーケンス内の各要素の与えられたクロージャを呼び出します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
func enumerated() -> EnumeratedSequence<Range<Bound>>
ペア (n、x) のシーケンスを返します。ここで n はゼロで始まる連続する整数を表し、x はシーケンスの要素を表します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
func makeIterator() -> IndexingIterator<Range<Bound>>
コレクションの要素の反復子 (iterator) を返します。
シーケンス内の要素の数以下の値。非破壊的に計算されます。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
コレクション内の要素の数以下の値。
要素の並べ替え
シーケンスの要素を並べ替えて返します。
Element が Comparable に準拠する場合使用可能です。
func sorted(by: (Bound, Bound) -> Bool) -> [Bound]
与えられた predicate (述語) を要素間の比較として使用し、並べ替えたシーケンスの要素を返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
func reversed() -> ReversedCollection<Range<Bound>>
コレクションの要素を逆の順序に表示するビューを返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
シーケンスの要素をシャッフルして返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
func shuffled<T>(using: inout T) -> [Bound]
与えられたジェネレータを乱数のソースとして使用し、シャッフルしたシーケンスの要素を返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
要素の分割と結合
与えられた要素と等しい要素の周りで、コレクションの可能な最長の部分シーケンスを順番に返します。
Element が Equatable に準拠する場合利用可能です。
与えられた predicate (述語) を満たす要素を含んでいないコレクションの、可能な最長の部分シーケンスを順番に返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
func joined() -> FlattenSequence<Range<Bound>>
連結されたこの一連のシーケンスの要素を返します。
Element が Sequence に準拠する場合利用可能です。
func joined() -> FlattenCollection<Range<Bound>>
連結されたこの一連のコレクションの要素を返します。
Element が Collection に準拠する場合利用可能です。
func joined<Separator>(separator: Separator) -> JoinedSequence<Range<Bound>>
各要素の間に与えられた区切り記号を挿入して、この一連のシーケンスの連結した要素を返します。
Element が Sequence に準拠する場合利用可能です。
func joined(separator: String) -> String
シーケンスの要素を連結し、各要素間に与えられた区切り記号を追加して新しい文字列を返します。
Element が String の場合利用可能です。
func joined(separator: String) -> String
シーケンスの要素を連結し、各要素間に与えられた区切り記号を追加して新しい文字列を返します。
Element が StringProtocol に準拠する場合利用可能です。
Range を比較
static func == (Range<Range<Bound>.Bound>,
Range<Range<Bound>.Bound>) -> Bool
2 つの範囲が等しいかどうかを示すブール値を返します。
static func != (Range<Bound>, Range<Bound>) -> Bool
2 つの値が等しくないかどうかを示すブール値を返します。
func overlaps(Range<Range<Bound>.Bound>) -> Bool
この範囲と与えられた範囲に共通の要素が含まれているかどうかを示すブール値を返します。
func overlaps(ClosedRange<Range<Bound>.Bound>) -> Bool
この範囲と与えられた範囲に共通の要素が含まれているかどうかを示すブール値を返します。
Range を Collection と比較
func elementsEqual<OtherSequence>(OtherSequence) -> Bool
このシーケンスと別のシーケンスに同じ要素が同じ順序で含まれているかどうかを示すブール値を返します。
Element が Equatable に準拠する場合利用可能です。
与えられた predicate (述語) を等価テストとして使用して、このシーケンスと別のシーケンスに同じ順序で同じ要素が含まれているかどうかを示すブール値を返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に利用可能です。
func lexicographicallyPrecedes<OtherSequence>(OtherSequence) -> Bool
要素を比較するために小なり演算子 (<) を使用して、シーケンスの順序を辞書の順序で別のシーケンスの前にあるかどうかを示すブール値を返します。
Element が Comparable に準拠している場合利用可能。
与えられた predicate (述語) を使用して要素を比較して、辞書の順序でシーケンスが別のシーケンスの前にあるかどうかを示すブール値を返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
func starts<PossiblePrefix>(with: PossiblePrefix) -> Bool
シーケンスの最初の要素が別のシーケンスの要素と同じかどうかを示すブール値を返します。
Element が Equatable に準拠する場合利用可能です。
与えられた predicate (述語) を等価テストとして使用して、シーケンスの最初の要素が別のシーケンスの要素と等しいかどうかを示すブール値を返します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
インデックスの操作
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
昇順でコレクションをサブスクライブするのに有効なインデックス。
Index が Strideable に準拠し、Indices が Range<Self.Index> であり、および Index.Stride が Int の場合に使用可能です。
範囲をサブスクリプトするために有効なインデックス。昇順に並べられます。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
func index(after: Range<Bound>.Index) -> Range<Bound>.Index
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
func formIndex(after: inout Bound)
与えられたインデックスをその後継と置き換えます。
func index(before: Range<Bound>.Index) -> Range<Bound>.Index
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
func formIndex(before: inout Bound)
与えられたインデックスをその先祖と置き換えます。
func index(Bound, offsetBy: Int, limitedBy: Bound) -> Bound?
与えられたインデックスから指定された距離にあるインデックスを、その距離が与えられた制限インデックスを超えていない限り返します。
func formIndex(inout Bound, offsetBy: Int)
与えられたインデックスを指定された距離だけオフセットします。
func index(Range<Bound>.Index, offsetBy: Int) -> Range<Bound>.Index
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
func formIndex(inout Bound, offsetBy: Int, limitedBy: Bound) -> Bool
与えられたインデックスを指定された距離だけオフセットするか、または与えられた制限インデックスと等しくなるようにオフセットします。
func distance(from: Range<Bound>.Index, to: Range<Bound>.Index) -> Int
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
与えられたハッシャーにそれらを供給することによって、この値の必須コンポーネントをハッシュします。
Bound が Hashable に準拠する時使用可能です。
範囲の説明
範囲のテキスト表現。
バッグに適した、範囲のテキスト表現。
あまり使用されない機能
init(uncheckedBounds: (lower: Range<Bound>.Bound, upper: Range<Bound>.Bound))
与えられた境界でインスタンスを作成します。
init(Range<Range<Bound>.Bound>)
今や、Range は Bound:Strideable、CountableRange が不要になったときの条件付きコレクションです。これは Range(countableRange) の残った使用のための廃止されたイニシャライザです。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
    廃止  
サポートする型
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
範囲 (range) 内の位置を表す型。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合に使用可能です。
関連
以下への準拠
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合準拠します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合準拠します。
CustomDebugStringConvertible
CustomReflectable
CustomStringConvertible
Bound が Hashable に準拠する場合準拠します。
RandomAccessCollection
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合準拠します。
Bound が Strideable に準拠し、Bound.Stride が SignedInteger に準拠する場合準拠します。
以下も見よ
範囲
static func ..< (Self, Self) -> Range<Self>
下限を含み、上限を含まない半開放範囲を返します。
static func ... (Self, Self) -> ClosedRange<Self>
両方の境界を含む閉鎖範囲を返します。
struct ClosedRange
下限から、上限を含むそこまでの間隔。