Golang中如何将int类型转换为string

Golang中如何将int类型转换为string 嗨,从我的名字你大概能猜到我是个新手。 我在转换东西时似乎遇到了问题;这是我的代码:

package main
import "fmt"
func main(){
i := 12
fmt.Printf("%s",string(i))
}

我期望它能打印出 12,但它只是打印了一个空行。我真的不知道发生了什么。

3 回复

好的,我会的,谢谢!

更多关于Golang中如何将int类型转换为string的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


请查看 strconv 包。

https://golang.org/pkg/strconv/

在Go语言中,string(i) 这种转换方式并不会将整数 12 转换为字符串 "12",而是会将 i 解释为Unicode码点,并返回对应的字符。由于Unicode码点 12 对应的是一个不可见的控制字符(换页符),所以输出看起来是空行。

你需要使用 strconv.Itoa 函数(Integer to ASCII)来将整数转换为字符串。以下是修正后的代码:

package main

import (
    "fmt"
    "strconv"
)

func main() {
    i := 12
    s := strconv.Itoa(i)
    fmt.Printf("%s", s)
}

或者,你也可以使用 fmt.Sprintf 函数:

package main

import "fmt"

func main() {
    i := 12
    s := fmt.Sprintf("%d", i)
    fmt.Printf("%s", s)
}

两种方法都会正确输出 12

回到顶部