遍历字符串 Swift 2.0
Iterate through a String Swift 2.0
我正在尝试在 Swift 游乐场中编写一段非常简单的代码。
var word = "Zebra"
for i in word {
print(i)
}
但是,我总是在第 3 行出错。
'String' does not have a member named 'Generator'
关于为什么这不起作用的任何想法?注意:我在 Xcode 7 工作,使用 Swift 2.0 (Strings and Characters).
从 Swift 2 开始,String
不符合 SequenceType
。但是,您可以在 String
上使用 characters
属性。 characters
returns 符合 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)
}
尽管如此,我确信 Apple 有理由删除 String
对 SequenceType
的一致性,因此第一个选项似乎是更好的选择。探索可能的事情很有趣。
String
不再符合 SequenceType
。但是,您可以通过以下方式访问它的 characters
属性:
var word = "Zebra"
for i in word.characters {
print(i)
}
请注意,文档尚未更新。
Swift 3.0.1
使用 characters
属性 的 indices
属性 访问字符串中单个字符的所有 indices
。
let greeting = "Guten Tag!"
for index in greeting.characters.indices {
print("\(greeting[index]) ", terminator: "")
}
// Prints "G u t e n T a g ! "
Swift 4
Forin循环:
let word = "Swift 4"
for i in word {
print(i)
}
地图 例子:
let word = "Swift 4"
_ = word.map({ print([=11=]) })
forEach 示例:
let word = "Swift 4"
word.forEach({ print([=12=]) })
我正在尝试在 Swift 游乐场中编写一段非常简单的代码。
var word = "Zebra"
for i in word {
print(i)
}
但是,我总是在第 3 行出错。
'String' does not have a member named 'Generator'
关于为什么这不起作用的任何想法?注意:我在 Xcode 7 工作,使用 Swift 2.0 (Strings and Characters).
从 Swift 2 开始,String
不符合 SequenceType
。但是,您可以在 String
上使用 characters
属性。 characters
returns 符合 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)
}
尽管如此,我确信 Apple 有理由删除 String
对 SequenceType
的一致性,因此第一个选项似乎是更好的选择。探索可能的事情很有趣。
String
不再符合 SequenceType
。但是,您可以通过以下方式访问它的 characters
属性:
var word = "Zebra"
for i in word.characters {
print(i)
}
请注意,文档尚未更新。
Swift 3.0.1
使用 characters
属性 的 indices
属性 访问字符串中单个字符的所有 indices
。
let greeting = "Guten Tag!"
for index in greeting.characters.indices {
print("\(greeting[index]) ", terminator: "")
}
// Prints "G u t e n T a g ! "
Swift 4
Forin循环:
let word = "Swift 4"
for i in word {
print(i)
}
地图 例子:
let word = "Swift 4"
_ = word.map({ print([=11=]) })
forEach 示例:
let word = "Swift 4"
word.forEach({ print([=12=]) })