简单的转换操作
//a是浮点型
a := 5.0
// 转换为int类型
b := int(a)
c := int32(a)
d := int64(a)
注意
- Go允许在底层结构相同的两个类型之间互转
- 低精度转换为高精度时是安全的,高精度的值转换为低精度时会丢失精度
- 这种简单的转换方式不能对int(float)和string进行互转
strconv包
Atoi()和Itoa()
// Atoi(): string -> int
i,_ := strconv.Atoi("3")
println(3 + i) // 6
//Itoa():int -> string
var number = 10
itoa := strconv.Itoa(number)
logs.Info(itoa)
string转int等
//string 转 int
var str string ="1"
i, _ := strconv.Atoi(str)
logs.Info(i)
//string 转 int64
i64, _ := strconv.ParseInt(str, 10, 64)
logs.Info(i64)
//string 转 byte
bytes := []byte(str)
logs.Info(bytes)
int转string等
//int转string
var number=10
itoa := strconv.Itoa(number)
logs.Info(itoa)
//int64转string
var numbers int64=50
formatInt := strconv.FormatInt(numbers, 10)
logs.Info(formatInt)
Parse类函数
Parse类函数用于转换字符串为给定类型的值:ParseBool()、ParseFloat()、ParseInt()、ParseUint()。
== ParseFloat()只能接收float64类型的浮点数。==
b, err := strconv.ParseBool("true")
f, err := strconv.ParseFloat("3.1415", 64)
i, err := strconv.ParseInt("-42", 10, 64)
u, err := strconv.ParseUint("42", 10, 64)
Format类函数
将给定类型格式化为string类型:FormatBool()、FormatFloat()、FormatInt()、FormatUint()。
s := strconv.FormatBool(true)
s := strconv.FormatFloat(3.1415, 'E', -1, 64)
s := strconv.FormatInt(-42, 16)
s := strconv.FormatUint(42, 16)