/ / Calculez le nombre de plages dans Swift 3 - swift, swift3

Calculer le nombre de plages dans Swift 3 - swift, swift3

Apparemment avant Swift 3, un Range<String.Index> avait un count propriété. En migrant vers Swift 3, j'ai remarqué que cela count la propriété est maintenant partie. Comment calculer la distance entre 2 String.Indexes dans Swift 3?

Réponses:

13 pour la réponse № 1

À partir de Swift 3, tous les calculs d’index sont effectués par la collection elle-même, comparer SE-0065 - Un nouveau modèle pour les collections et les index sur l'évolution rapide.

Exemple:

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
}

Réellement, String est ne pas une collection dans Swift 3, mais il a ces méthodes ainsi et ils sont transmis aux chaînes CharacterView. Vous obtenez le même résultat avec

    let count = string.characters.distance(from: range.lowerBound, to: range.upperBound)

A partir de Swift 4, les chaînes sont des collections (encore).