首页 > 解决方案 > swift) 在 for 循环中,即使迭代最后一个索引,引用 .index(after: index) 也不会出错?为什么?

问题描述

var a = "hi my name is Jim."

for index in a.indices {
    var rightAfterIndex = a.index(after: index)
}

在上面的代码中,在 for 循环结束时,我肯定会迭代 swift String 的最后一个索引,但在最后一个索引之后引用该索引仍然不会出错。为什么会这样?

标签: swift

解决方案


的最后一项之后的索引indices是字符串的(有效)endIndex

a.index(after: a.indices.last!) == a.endIndex // true

从文档中:

字符串的“结束”位置——即比最后一个有效下标参数大一的位置。


推荐阅读