GO类型转换及与C的类型转换

类型转换

语法

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 *