Golang有strconv库,可将字符串转换为int64和uint64。
然而,其余的整数数据类型似乎不受支持,因为我找不到byte,int16,uint16,int32,uint32数据类型的转换函数。
总是可以将字节,16位和32位数据类型转换为int64和uint64,而不会损失精度。这是语言的意图吗?
答案 0 :(得分:3)
您可以使用fmt.Sprintf()方法将任何int类型转换为字符串
var num int64
numstring:=fmt.Sprintf("%d",num)
答案 1 :(得分:2)
如果您仔细查看文档,可以使用此方法;
func ParseInt(s string, base int, bitSize int)
https://golang.org/pkg/strconv/#ParseInt
bitSize
参数表示int的大小,因此您可以为这些较小的整数类型执行8
或16
或32
。 Atoi
在内部调用此内容。我相信您需要10
base
参数。就像b, err := strconv.ParseInt("5", 10, 8)
一样。
编辑:如果OP实际上混淆了如何将16位int转换为字符串,那么只需要在这里添加一些答案......如果这是您的预期目标,只需使用{{1}或者你可以从较小的int转换为较大的int,因为它总是会成功。这两个例子; https://play.golang.org/p/UWSVxEmQ1N
fmt.Sprintf
答案 2 :(得分:2)
例如,
package main
import (
"fmt"
"strconv"
)
func main() {
n := int16(42)
s := strconv.FormatInt(int64(n), 10)
fmt.Printf("n %d s %q\n", n, s)
}
输出:
n 42 s "42"