我一直在用Swift 3更新一些旧代码和答案,但是当我接触Swift Strings和Indexing时,很难理解。
具体来说,我正在尝试以下操作:
let str = "Hello, playground"
let prefixRange = str.startIndex..<str.startIndex.advancedBy(5) // error
第二行给我以下错误
“ advancedBy”不可用:要使索引前进n个步骤,请在生成索引的CharacterView实例上调用“ index(_:offsetBy :)”。
我看到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)
刚开始这些让我很困惑,所以我开始和他们一起玩直到我理解它们。我在下面添加一个答案,以显示它们的用法。
蝴蝶刀刀