文書   >   Swift   >   Swift 標準ライブラリ   >   Collections   >   Sequence and Collection Protocols   >   Collection   >   subscript(_:)
サブスクリプト
subscript(_:)
コレクションの要素の連続した部分範囲にアクセスします。
必須。
宣言
subscript(bounds: Range<Self.Index>) -> Self.SubSequence { get }
パラメータ
bounds | コレクションのインデックスの範囲。範囲の境界は、コレクションの有効なインデックスでなければなりません。 |
議論
たとえば、配列で PartialRangeFrom 範囲式を使用すると、範囲式の先頭から配列の最後までの部分範囲にアクセスします。
let streets = ["Adams", "Bryant", "Channing", "Douglas", "Evarts"]
let streetsSlice = streets[2..<5]
print(streetsSlice)
// ["Channing", "Douglas", "Evarts"]
アクセスされたスライスは元のコレクションと同じ要素に対して同じインデックスを使用します。この例では、スライス内の文字列の 1 つを streetsSlice で検索し、元の配列でそのインデックスを使用します。
let index = streetsSlice.firstIndex(of: "Evarts")! // 4 print(streets[index]) // "Evarts"
そのインデックスが特定の値から始まると仮定するのではなく、常にスライスの startIndex プロパティを使用して下さい。スライスの範囲外のインデックスを使用して要素にアクセスしようとすると、そのインデックスが元のコレクションに対して有効であっても実行時エラーが発生する可能性があります。
print(streetsSlice.startIndex) // 2 print(streetsSlice[2]) // "Channing" print(streetsSlice[0]) // error: Index out of bounds
複雑さ:O(1)。