为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
陪伴而非守候 2023-06-05 18:19:51
我是新手Go,我希望迭代字符串的字符package mainimport (    "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但事实并非如此。我究竟做错了什么?
查看完整描述

1 回答

?
慕妹3242003

TA贡献1824条经验 获得超6个赞

修复go vet包fmt格式错误消息(typerune是 type 的别名int32):


10: Printf format %s has arg c of wrong type rune


0 %!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 main


import (

    "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 a

1 b

2 c

3 d

stringUTF-8 变长编码类型示例:


package main


import (

    "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 α


查看完整回答
反对 回复 2023-06-05
  • 1 回答
  • 0 关注
  • 106 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信