类型转换
语法
dst := float32(src)
示例
var num int = 520
f32 := float32(num)
i64 := int64(num)
valint32(val)*(int32(var1))(*int32)(var1)
类型断言
语法
dst,ok := src.(int) // 安全类型断言,通过ok判断是否转换成功
dst := src.(int) // 非安全类型断言,无法确定是否转换成功
示例
var val interface{
} = 123
num,ok := val.(int)
if ok {
fmt.Printf("%T->%d\n", num, num)
} else {
fmt.Println("类型不匹配")
}
其他转换
strconv
bytes 、string转换
//类型转换 string to bytes
func str2bytes(s string) []byte {
x := (*[2]uintptr)(unsafe.Pointer(&s))
h := [3]uintptr{
x[0], x[1], x[1]}
return *(*[]byte)(unsafe.Pointer(&h))
}
//类型转换 bytes to string
func bytes2str(b []byte) string {
return *