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

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'?


因为现在的 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。

【热门文章】
【热门文章】