美文网首页
942.【golang】强制类型转换

942.【golang】强制类型转换

作者: 七镜 | 来源:发表于2024-02-13 15:43 被阅读0次

    基于指针的强制类型转换非常高效,因为不会生成任何多余的指令的,也不会额外分配内存,只是让编译器换一个种方式来解释内存中的数据。

    在 Go 语言中,处于安全方面的考虑,不建议频繁进行指针强制类型转换。

    两种不同类型指针间的转换需要用 unsafe.Pointer 作为中间类型,unsafe.Pointer 可以和任意一种指针类型互相转换。

    示例代码如下:

    func convert(p *int) {
        q := (* int32)(unsafe.Pointer(p))
        * q = 0
    }
    

    相关文章

      网友评论

          本文标题:942.【golang】强制类型转换

          本文链接:https://www.haomeiwen.com/subject/spzjadtx.html