汎用サブスクリプト


subscript(_:)


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


iOS 15.0+ iPadOS 15.0+ macOS 12.0+ Mac Catalyst 15.0+

tvOS 15.0+ watchOS 8.0+ visionOS 1.0+ Xcode 13.0+

subscript<R>(r: R) -> Slice<AttributedString.UnicodeScalarView> where R : RangeExpression, AttributedString.Index == R.Bound { get }





パラメータ


bounds

コレクションの指標の範囲。範囲の境界は、コレクションの有効な指標でなければなりません。



議論


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


  1. let streets = ["Adams", "Bryant", "Channing", "Douglas", "Evarts"]
  2. let streetsSlice = streets[2...]
  3. print(streetsSlice)
  4. // ["Channing", "Douglas", "Evarts"]


アクセスされたスライスは、同じ要素に対して元のコレクションが使用するのと同じ指標を使用します。以下の例では、streetsSlice でスライス内の文字列の 1 つを検索し、元の配列でその指標を使用します。


  1. let index = streetsSlice.firstIndex(of: "Evarts")       // 4
  2. print(streets[index!])
  3. // "Evarts"


スライスの指標が特定の値で始まると想定するのではなく、常にスライスの startIndex プロパティを使用してください。スライスの指標の範囲外の指標を使用して要素にアクセスしようとすると、その指標が元のコレクションに対して有効であっても、実行時エラーが発生する可能性があります。


  1. print(streetsSlice.startIndex)
  2. // 2
  3. print(streetsSlice[2])
  4. // "Channing"
  5. print(streetsSlice[0])
  6. // error: Index out of bounds


複雑さ:O(1)















トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ