在go中遍历字符串字符的最正确方法是什么

我是新手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

但事实并非如此。我究竟做错了什么?


陪伴而非守候
浏览 109回答 1
1回答

慕妹3242003

修复go vet包fmt格式错误消息(typerune是 type 的别名int32):10: Printf format %s has arg c of wrong type rune0 %!s(int32=97)1 %!s(int32=98)2 %!s(int32=99)3 %!s(int32=100)游乐场:https://play.golang.org/p/oM9D8oNlaAO符文是 Unicode 代码点(字符),而不是字符串。%c不使用%s。例如,package mainimport (    "fmt")func main() {    var a string = "abcd"    for i, c := range a {        fmt.Printf("%d %c\n", i, c)    }}游乐场:https://play.golang.org/p/LFQPGZ9X5kk输出:0 a1 b2 c3 dstringUTF-8 变长编码类型示例:package mainimport (    "fmt")func main() {    var a string = "Greece Ελλάδα"    for i, c := range a {        fmt.Printf("%2d %c\n", i, c)    }}游乐场:https://play.golang.org/p/Fdgg6UMXAAt输出: 0 G 1 r 2 e 3 e 4 c 5 e 6   7 Ε 9 λ11 λ13 ά15 δ17 α
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go