String 在go中迭代字符串字符的最正确方法是什么
我是围棋新手,我希望迭代字符串的字符String 在go中迭代字符串字符的最正确方法是什么,string,loops,go,String,Loops,Go,我是围棋新手,我希望迭代字符串的字符 package main import ( "fmt" ) func main() { var a string = "abcd" for i, c := range a { fmt.Printf("%d %s\n", i, c) } } 我希望输出是 0 a 1 b 2 c 3 d 但事实并非如此。我做错了什么?修复go-vet和package fmt格式错误消息类型r
package main
import (
"fmt"
)
func main() {
var a string = "abcd"
for i, c := range a {
fmt.Printf("%d %s\n", i, c)
}
}
我希望输出是
0 a
1 b
2 c
3 d
但事实并非如此。我做错了什么?修复go-vet和package fmt格式错误消息类型rune是int32类型的别名:
游乐场:
符文是Unicode代码点字符,而不是字符串
使用%c而不是%s。比如说,
package main
import (
"fmt"
)
func main() {
var a string = "abcd"
for i, c := range a {
fmt.Printf("%d %c\n", i, c)
}
}
游乐场:
输出:
0 a
1 b
2 c
3 d
0 G
1 r
2 e
3 e
4 c
5 e
6
7 Ε
9 λ
11 λ
13 ά
15 δ
17 α
类型字符串UTF-8可变长度编码的示例:
package main
import (
"fmt"
)
func main() {
var a string = "Greece Ελλάδα"
for i, c := range a {
fmt.Printf("%2d %c\n", i, c)
}
}
游乐场:
输出:
0 a
1 b
2 c
3 d
0 G
1 r
2 e
3 e
4 c
5 e
6
7 Ε
9 λ
11 λ
13 ά
15 δ
17 α
参考资料:
.你的问题是根据标题的效率,还是根据问题的正确性?问题可能太广泛了,这是关于两者的问题。最好将每个问题作为单独的问题来问。