You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Go语言遍历字符串输出整数而非字符的原因及解决方法

问题原因与修复方案

原因

在Go语言中,用range遍历字符串时,迭代返回的第二个值是**rune类型**(它是int32的别名),对应字符的Unicode码点。直接用fmt.Println(c)输出时,会按照整数类型打印,所以你看到的是97、98、99这类ASCII码值。

修复方法

有两种常用的解决方式:

方法一:将rune转为string类型

修改genString函数,打印时把c转换为string类型:

func genString(v string) {
    for _, c := range v {
        fmt.Println(string(c))
    }
}

方法二:用fmt.Printf指定字符格式符%c

替换fmt.Println为fmt.Printf,通过%c格式符直接输出字符:

func genString(v string) {
    for _, c := range v {
        fmt.Printf("%c\n", c)
    }
}

测试后两种方式都会输出预期结果:

a
b
c

内容的提问来源于stack exchange,提问作者Troskyvs

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 22:09:15