在Obj-C中,可以通过以下字母迭代字母:
for (char x='A'; x<='Z'; x++) {
Run Code Online (Sandbox Code Playgroud)
在Swift中,这是不可能的.知道我怎么能这样做吗?
Log*_*gan 15
在Swift中,您可以在字符串上迭代字符,如下所示:
斯威夫特2
for char in "abcdefghijklmnopqrstuvwxyz".characters {
println(char)
}
Run Code Online (Sandbox Code Playgroud)
Swift 1.2
for char in "abcdefghijklmnopqrstuvwxyz" {
println(char)
}
Run Code Online (Sandbox Code Playgroud)
可能有更好的方法.
ipm*_*mcc 13
这有点麻烦,但以下作品(Swift 3/4):
for value in UnicodeScalar("a").value...UnicodeScalar("z").value { print(UnicodeScalar(value)!) }
Run Code Online (Sandbox Code Playgroud)
我怀疑这里的问题是"a"......"z"的含义可能因不同的字符串编码而有所不同.
(旧东西)
也很麻烦,但没有额外的中间变量:
for letter in map(UnicodeScalar("a").value...UnicodeScalar("z").value, {(val: UInt32) -> UnicodeScalar in return UnicodeScalar(val); })
{
println(letter)
}
Run Code Online (Sandbox Code Playgroud)
为 Swift 3.0 及更高版本更新
let startChar = Unicode.Scalar("A").value
let endChar = Unicode.Scalar("Z").value
for alphabet in startChar...endChar {
if let char = Unicode.Scalar(alphabet) {
print(char)
}
}
Run Code Online (Sandbox Code Playgroud)
Swift 4.2 version is much easier
for char in "abcdefghijklmnopqrstuvwxyz" {
print(char)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11472 次 |
| 最近记录: |