go注解(12)——低级编程
一.unsafe包
-
unsafe包是由编译器实现的,提供了对语言内置特性的访问功能,这些特性一般是不可见的
-
unsafe包广泛使用在和操作系统交互的低级包(如runtime、os、syscall和net),普通程序从不需要使用unsafe包
二.ffi
-
c作为最底层的高级语言,几乎所有广泛使用的包都导出了和c兼容的api
-
cgo是为c函数创建go绑定的工具,诸如此类的工具都叫做外部函数接口(ffi)
-
swig是另一个工具,提供了更复杂的功能集成c++的类
三.警告
-
unsafe包的内容不能滥用,如果对细节部分不经过深思熟虑,将会带来不可预测的、奇怪的、非局部的错误
-
reflect和unsafe包都应该避免使用,等到真正需要用到的时候再去研究