一尘不染

遍历String Swift 2.0

swift

我正在尝试在Swift操场上编写一段非常简单的代码。

var word = "Zebra"

for i in word {
  print(i)
}

但是,我总是在第3行出现错误。

“字符串”没有名为“生成器”的成员

有什么想法为什么不起作用?注意:我正在使用Swift
2.0(字符串和字符)在Xcode
7中工作


阅读 215

收藏
2020-07-07

共1个答案

一尘不染

从Swift
2开始,String不符合SequenceType。但是,您可以在使用characters属性Stringcharacters返回String.CharacterView符合的SequenceType,因此可以通过for循环进行迭代:

let word = "Zebra"

for i in word.characters {
    print(i)
}

另外,您可以添加扩展名String使其符合SequenceType

extension String: SequenceType {}

// Now you can use String in for loop again.
for i in "Zebra" {
    print(i)
}

虽然,我确定Apple有理由取消String与的一致性SequenceType,所以第一种选择似乎是更好的选择。探索有趣的事情很有意思。

2020-07-07