有时我们必须在Golang中把int64转换成字符串。我们可以使用不同的函数来实现这一点。
使用strconv.Itoa()将Golang的int64转换为字符串
Golang strconv.Itoa()函数可以用来将int64转换为字符串。让我们看一下一个简单的例子。
package main
import (
"fmt"
"strconv"
)
func main() {
s := strconv.Itoa(97)
fmt.Println(s)
}
输出:
97
为什么不使用string()将int64转换为字符串?
如果你想知道为什么我们不能使用string()函数来传递int参数并创建一个字符串对象,让我们看看当我们尝试这样做时会发生什么。
s := string(97)
fmt.Println(s) // prints "a"
string()函数将整数参数视为字符串的码位值,并返回相应的字符串。因此,我们得到的不是一个值为 "97 "的字符串,而是 "a",因为它的Unicode码点值是97。
用base将int64转换为字符串
如果我们想用其他的基数表示字符串,怎么办?不用担心,strconv包有一个FormatInt()函数可以实现这种转换。
package main
import (
"fmt"
"strconv"
)
func main() {
var a int64 = 28
var b int64 = 4
fmt.Println(strconv.FormatInt(a, 16)) // prints "1c"
fmt.Println(strconv.FormatInt(b, 2)) // prints "100"
}
那么将int8或int32转换为字符串呢?
Itoa()和FormatInt()函数只对int64工作。所以,如果你要将任何不同的整数类型转换为字符串,请使用int()函数首先将它们转换为int64格式。
var a int32 = 28
fmt.Println(strconv.Itoa(a))
// error "cannot use a (type int32) as type int in argument to strconv.Itoa"
正确的转换方式是:
a := int8(28)
x := int(a)
fmt.Println(strconv.Itoa(x)) // prints "28"
结论
如果你必须将int64转换为字符串,请使用strconv.Itoa()函数。如果你想用不同的基数表示字符串,请使用FormatInt()函数。