1. x可以直接复制给T类型变量
2. x的类型和T具有相同的底层类型
3. x的类型和T都是未命令的指针类型,并且指针指向的类型具有相同的底层类型
4. x的类型和T都是整型,或都是浮点型,或者都是复数类型
5. x是整数值 或[]byte类型的值,T是string类型
6. x是一个字符串,T是[]byte或 []rune
s := "hello,世界" var a []byte a = []byte(s) var b []rune b = []rune(s) fmt.Printf("%T\n", a) fmt.Printf("%T\n", b) fmt.Printf("%T\n", s)
1. 数值类型和string类型之间的相互转换可能造成值部分丢失;其他的转换仅是类型的转换,不会造成值的改变。string和数字志坚的转换可使用标准库strconv
2. Go语言没有语言机制支持指针和interger之间的直接转换,可以使用标准库中的unsafe
原文:https://www.cnblogs.com/will-xz/p/13551435.html