首页 > 其他 > 详细

Go 类型强制转换

时间:2020-08-25 20:22:00      阅读:71      评论:0      收藏:0      [点我收藏+]

Go 类型强制转换

 

强制类型的语法格式:var a T = (T)(b),使用括号将类型和要转换的变量或表达式的值括起来

 

强制转换需要满足如下任一条件:(x是非常量类型的变量,T是要转换的类型)

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

Go 类型强制转换

原文:https://www.cnblogs.com/will-xz/p/13551435.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!