Как работает String.Index в Swift
Я обновлял часть своего старого кода и ответов с помощью Swift 3, но когда я перешел к Swift Strings и Indexing, мне было тяжело понимать вещи.
В частности, я пытался следующее:
let str = "Hello, playground"
let prefixRange = str.startIndex..<str.startIndex.advancedBy(5) // error
где вторая строка давала мне следующую ошибку
'advancedBy' недоступен: чтобы продвинуть индекс на n шагов, вызовите 'index (_: offsetBy :)' для экземпляра CharacterView, который создал индекс.
я вижу этоString
имеет следующие методы.
str.index(after: String.Index)
str.index(before: String.Index)
str.index(String.Index, offsetBy: String.IndexDistance)
str.index(String.Index, offsetBy: String.IndexDistance, limitedBy: String.Index)
Сначала это действительно смущало меня, поэтому я начал играть с ними, пока не понял их. Я добавляю ответ ниже, чтобы показать, как они используются.