swift循环遍历字符串,报value of type 'String' has no member 'Generator'

swift 初学者求问,书上的例子:

var t1 = "GUNDAM"

for c in t1 {
    print(c)
}

为什么会报错

value of type 'String' has no member 'Generator'?

阅读 8.2k
2 个回答

因为现在的 Swift 处在快速发展期,你书上的一些东西已经“过期”了。这个例子应该是在 Swift 2 的时候就变动了(具体哪个版本变动的,我已经记不清了)。

以前 String 类是遵守了 CollectionType 协议的,所以可以像 Array 一样进行遍历。
但是如今的 String 类的内部实现变了,所以类似于上面的遍历应该改为:

let t1 = "GUNDAM"

for c in t1.characters {
    print(c)
}

PS: 首先,Hello Gungam fan!其次,提醒你去习惯使用 let

同意楼上的答案,String类用let是个好习惯。
或者说 常量用let。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进