swift - 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 的最后一个索引,但在最后一个索引之后引用该索引仍然不会出错。为什么会这样?
解决方案
的最后一项之后的索引indices
是字符串的(有效)endIndex
。
a.index(after: a.indices.last!) == a.endIndex // true
从文档中:
字符串的“结束”位置——即比最后一个有效下标参数大一的位置。
推荐阅读
- c# - Azure AD (MSAL) 身份验证不适用于 ASP.NET 核心 API
- github - Github 预定提醒 - 一些 Slack 提及没有关联
- java - 在 Java 中创建对 API 的请求
- python - 使用分布式训练(例如 DDP)时如何在 pytorch 中修复 SIGSEGV?
- mediawiki - 在 Wikibase 中添加更多语言
- python - 您能否让我知道在 selenium python 浏览器的网络选项卡中捕获除 200 以外的状态代码的代码吗?
- javascript - 如何防止使用正则表达式添加一定数量的字符?
- excel - 如何使用具有一系列值的自动填充/填充
- javascript - 如何水平滚动div内的元素javascript / jquery
- amazon-web-services - 在 EKS 中启动 efs csi 驱动程序 pod 时出错