在Swift中迭代字母表

Lup*_*rus 17 ios swift

在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)


Ché*_*éyo 7

for i in 97...122{println(UnicodeScalar(i))}
Run Code Online (Sandbox Code Playgroud)


iAj*_*iAj 5

为 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)


Tun*_*Duc 5

Swift 4.2 version is much easier

for char in "abcdefghijklmnopqrstuvwxyz" {
    print(char)
}
Run Code Online (Sandbox Code Playgroud)