文書   >   Swift   >   Swift 標準ライブラリ   >   Collections   >   Range   >   subscript(_:)


汎用サブスクリプト


subscript(_:)


範囲式で指定されたコレクションの要素の連続した部分範囲にアクセスします。





宣言


subscript<R>(r: R) ->  Range<Bound> where R : RangeExpression, Bound == R.Bound { get } 


BoundStrideable に準拠し、Bound.StrideSignedInteger に準拠する場合に使用可能です。


パラメータ


boundsコレクションのインデックス (indices) の範囲。範囲の境界は、コレクションの有効なインデックスでなければなりません。


議論


範囲式は、このコレクションを基準にして具体的な部分範囲に変換されます。たとえば、配列で PartialRangeFrom 範囲式を使用すると、範囲式の先頭から配列の最後まで部分範囲にアクセスします。


let streets = ["Adams", "Bryant", "Channing", "Douglas", "Evarts"]
let streetsSlice = streets[2...]
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)


以下も見よ





要素へのアクセス





目次
Xcode の新機能

  • 言語:Swift
  • SDK
  • Xcode 10.0+
  • フレームワーク
  • Swift 標準ライブラリ
  • 宣言
  • パラメータ
  • 議論
  • 以下も見よ












  • トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)












    トップへ(Swift 標準ライブラリ)