go 语言 int、 int64、string 相互转换
2018-12-14
golang
6426
速记
// string -> int
int, err := strconv.Atoi(string)
// string -> int64
int64, err := strconv.ParseInt(string, 10, 64)
// int -> string
string := strconv.Itoa(int)
// int64 -> string
string := strconv.FormatInt(int64, 10)
详解
int to string
使用方法 strconv.Itoa
将 int
类型转化为字符串,不会抛出错误
s := strconv.Itoa(97) // s == "97"
需要注意,这里不要直接用string()
转化,string(int)
会转化为 Unicode
s := string(97) // s == "a"
int64 to string
使用方法strconv.FormatInt
将int64转化为string,
第二个参数为数字的进制数, 这个函数和js的toString
比较像,对toString
不了解的可以看这里
JavaScript中一些被忽略的参数
var n int64 = 97
s := strconv.FormatInt(n, 10) // s == "97" (decimal)
var n int64 = 97
s := strconv.FormatInt(n, 16) // s == "61" (16 进制,即hex转码)
string to int
使用 strconv.Atoi
将string解析为int。
不是所有string都能转化为int,如解析s22
,会抛出 invalid syntax
错误
s := "97"
if n, err := strconv.Atoi(s); err == nil {
fmt.Println(n+1)
} else {
fmt.Println(s, "is not an integer.")
}
// Output: 98
string to int64
使用 strconv.ParseInt
方法将string转为为int64.
s := "97"
n, err := strconv.ParseInt(s, 10, 64)
if err == nil {
fmt.Printf("%d of type %T", n, n)
}
// Output: 97 of type int64
第二个参数,表示数字字符串的进制,如二进制,八进制,十进制等
第三个参数,返回结果的bit大小, 如0, 8, 16, 32, 64,分别转化为 int,int8, int16, int32, int64,每种int都有各自的范围,超出范围会报错
参考文档