Instance Method インスタンスメソッド

samePosition(in:)

Returns the position in the given view of Unicode scalars that corresponds exactly to this index. 与えられたユニコードスカラーのビューの中のある位置を返します、それは正確にこのインデックスに対応します。

Declaration 宣言

func samePosition(in unicodeScalars: String.UnicodeScalarView) -> String.UnicodeScalarIndex?

Parameters パラメータ

unicodeScalars

The view to use for the index conversion. This index must be a valid index of at least one view of the string shared by unicodeScalars. インデックス変換に使うビュー。このインデックスは、unicodeScalarsによって共有される文字列の少なくとも1つのビューの有効なインデックスでなければなりません。

Return Value 戻り値

The position in unicodeScalars that corresponds exactly to this index. If this index does not have an exact corresponding position in unicodeScalars, this method returns nil. For example, an attempt to convert the position of a UTF-16 trailing surrogate returns nil. このインデックスに正確に対応するunicodeScalarsの中の位置。このインデックスがまさにその対応する位置をunicodeScalarsにおいて持たないならば、イニシャライザの結果はnilです。例えば、UTF-16の後続サロゲートの位置を変換する試みはnilを返します。

Discussion 解説

This index must be a valid index of String(unicodeScalars).utf16. このインデックスはString(unicodeScalars).utf16の有効なインデックスでなければなりません。

This example first finds the position of a space (UTF-16 code point 32) in a string’s utf16 view and then uses this method to find the same position in the string’s unicodeScalars view. この例は、ある空白(UTF-16コード点32)の位置を文字列のもつutf16ビューの中で見つけて、それからこのメソッドを使って文字列のもつunicodeScalarsビューにおける同じ位置を捜します。


let cafe = "Café 🍵"
let i = cafe.utf16.firstIndex(of: 32)!
let j = i.samePosition(in: cafe.unicodeScalars)!
print(String(cafe.unicodeScalars[..<j]))
// Prints "Café"