最佳答案
我一直在用 Swift 3更新我的一些旧代码和答案,但是当我使用 Swift String 和 Indexing 时,理解这些东西是一件很痛苦的事情。
具体来说,我尝试了以下方法:
let str = "Hello, playground"
let prefixRange = str.startIndex..<str.startIndex.advancedBy(5) // error
第二行给我的错误是什么
“ AdvancedBy”不可用: 要按 n 个步骤提前索引,请在生成索引的 CharterView 实例上调用“ 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)
一开始我真的很困惑,所以我开始玩弄它们,直到我理解它们为止。我在下面添加一个答案来说明它们是如何使用的。