8
スウィフト3の前に明らかに、Range<String.Index>
はcount
の特性を持っていました。 Swift 3に移行中、私はこのcount
プロパティがなくなったことに気付きました。 Swift 3の2 String.Index
の距離をどのように計算すればよいですか?スウィフト3の範囲カウントを計算する
スウィフト3の前に明らかに、Range<String.Index>
はcount
の特性を持っていました。 Swift 3に移行中、私はこのcount
プロパティがなくなったことに気付きました。 Swift 3の2 String.Index
の距離をどのように計算すればよいですか?スウィフト3の範囲カウントを計算する
スウィフト3では、すべてのインデックス計算はコレクション自体によって行われ、 はSE-0065 – A New Model for Collections and IndicesとSwift進化を比較します。
例:
let string = "abc 1234 def"
if let range = string.range(of: "\\d+", options: .regularExpression) {
let count = string.distance(from: range.lowerBound, to: range.upperBound)
print(count) // 4
}
実は、String
はスウィフト3でないコレクションですが、それは同様にそれらのメソッド を持っており、それらは文字列CharacterView
に転送されます。あなたはスウィフト4のよう
let count = string.characters.distance(from: range.lowerBound, to: range.upperBound)
と同じ結果を得る 、文字列は(再び)のコレクションです。