文書   >   Swift   >   Array   >   subscript(_:)
汎用サブスクリプト
subscript(_:)
範囲式で指定されたコレクションの要素の連続した部分範囲にアクセスします。
宣言
パラメータ
bounds | コレクションのインデックスの範囲。範囲の境界はコレクションの有効なインデックスでなければなりません。 |
議論
範囲式は、このコレクションを基準にした具象的な部分範囲に変換されます。たとえば、PartialRangeFrom 範囲式を配列とともに使用すると、範囲式の先頭から配列の末尾までの部分範囲にアクセスします。
let streets = ["Adams", "Bryant", "Channing", "Douglas", "Evarts"]
let streetsSlice = streets[2 ...]
print(streetsSlice)
// ["Channing", "Douglas", "Evarts"]
アクセスされたスライスは、元のコレクションが使用しているのと同じ要素に対して同じインデックスを使用します。この例では、streetsSlice でスライス内の文字列の 1 つを検索してから、そのインデックスを元の配列で使用します。
let index = streetsSlice.firstIndex(of: "Evarts") // 4 print(streets[index!]) // "Evarts"
スライスの startIndex が特定の値で始まると仮定するのではなく、常にスライスの startIndex プロパティを使用してください。スライスのインデックスの境界外のインデックスを使用して要素にアクセスしようとすると、そのインデックスが元のコレクションに対して有効であっても実行時エラーが発生する可能性があります。
print(streetsSlice.startIndex) // 2 print(streetsSlice[2]) // "Channing" print(streetsSlice[0]) // error: Index out of bounds
複雑さ:O(1)
以下も見よ
要素にアクセス
指定された位置にある要素にアクセスします。
コレクションの最初の要素。
コレクションの最後の要素。
subscript(Range<Int>) -> ArraySlice<Element>
配列の要素の連続した部分範囲にアクセスします。
subscript(Range<Int>) -> Slice<Array<Element>>
コレクションの要素の連続した部分範囲にアクセスします。
subscript<R>(R) -> ArraySlice<Element>
subscript((UnboundedRange_) -> ()) -> ArraySlice<Element>
func randomElement() -> Element?
コレクションのランダムな要素を返します。
func randomElement<T>(using: inout T) -> Element?
乱数の発生源として与えられた発生器を使用して、コレクションのランダムな要素を返します。
トップへ
トップへ
トップへ
トップへ
トップへ