通过String Swift 2.0迭代
我想在Swift游乐场里做一个非常简单的代码。
var word = "Zebra" for i in word { print(i) } 但是,我总是在第3行发生错误。
'String'没有名为'Generator'的成员
任何想法,为什么这是行不通的? 注意:我在Xcode 7中使用Swift 2.0( string和字符)。
 从Swift 2开始, String不符合SequenceType 。 但是,您可以使用String上的characters属性。  characters返回一个符合SequenceType的String.CharacterView ,所以可以用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) } 
 虽然,我确信苹果有理由去除String符合SequenceType ,所以第一个选项似乎是更好的select。 探索什么是可能的,但是很有趣。 
  String不再符合SequenceType 。 但是你可以这样访问它的characters属性: 
 var word = "Zebra" for i in word.characters { print(i) } 
请注意,文档尚未更新。
Swift 3.0.1
 使用characters属性的indices属性可以访问string中所有单个字符的indices 。 
 let greeting = "Guten Tag!" for index in greeting.characters.indices { print("\(greeting[index]) ", terminator: "") } // Prints "G uten T ag ! " 
斯威夫特4
Forin循环:
 let word = "Swift 4" for i in word { print(i) } 
地图示例:
 let word = "Swift 4" _ = word.map({ print($0) }) 
例如:
 let word = "Swift 4" word.forEach({ print($0) })