942.【golang】强制类型转换

2024-02-13  本文已影响0人  七镜

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

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

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

示例代码如下:

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

猜你喜欢

热点阅读