文書   >   Swift   >  String   >   Index   >   init(_:within:)


イニシャライザ


init(_:within:)


与えられた文字列に、指定された位置に正確に対応するインデックスを作成します。





宣言


init?(_ sourcePosition: String.Index, within target: String)

パラメータ


sourcePositiontarget パラメータのビュー内の位置。sourcePosition は、target の少なくとも 1 つのビューの有効なインデックスでなければなりません。
target結果のインデックスによって参照される文字列。


議論


sourcePosition として渡されたインデックスが拡張書記素クラスタの先頭 (文字列の要素型) を表す場合、初期化子は成功します。


以下の例では、Unicode スカラ "e" の位置を文字列内の対応する位置に変換します。その位置の文字は合成された "é" 文字です。


let cafe = "Cafe\u{0301}"
print(cafe)
// Prints "Café"

let scalarsIndex = cafe.unicodeScalars.firstIndex(of: "e")!
let stringIndex = String.Index(scalarsIndex, within: cafe)!

print(cafe[...stringIndex])
// Prints "Café"


sourcePosition として渡されたインデックスに target 内の正確に対応する位置がない場合、イニシャライザの結果は nil です。たとえば、結合する鋭アクセント記号 ("\u{0301}") の位置を変換しようとしても失敗します。Unicode スカラーを結合しても、文字列内でのそれ自体の位置は変わりません。


let nextScalarsIndex = cafe.unicodeScalars.index(after: scalarsIndex)
let nextStringIndex = String.Index(nextScalarsIndex, within: cafe)

print(nextStringIndex)
// Prints "nil"

















トップへ












トップへ












トップへ












トップへ
目次
Xcode の新機能

  • 言語:Swift
  • SDK
  • Xcode 9.0+
  • Framework
  • Swift 標準ライブラリ
  • 宣言
  • パラメータ
  • 議論












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












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












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












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












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












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












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












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












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












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












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












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












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












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












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












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












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












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












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












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