为什么 Go 关心 unsafe.Pointer 和 uintptr 之间的差别
基本要求是以这种方式进行操作,使编译器和运行时可以屏蔽不安全的指针的临时非指针性,使其免受垃圾收集器的干扰,因此这种临时转换对于垃圾收集将是原子的。
面试官:说说unsafe.Pointer和uintptr的区别和联系
因此,我建议你遵循这些模式,因为这是减少错误的唯一方法。所有这一切的发生都是因为一些人认为使用了 unsafe 包,这太危险不应该使用。
图解Go的unsafe.Pointer
相信看过Go源码的同学已经对unsafe.Pointer非常的眼熟,因为这个类型可以说在源码中是随处可见:map、channel、interface、slice…但凡你能想到的内容,基本都会有unsafe.Pointer的影子。看字面意思,unsafe.