zhngs

zhngs

go注解(12)——低级编程

一.unsafe包
二.ffi
三.警告

一.unsafe包

  • unsafe包是由编译器实现的,提供了对语言内置特性的访问功能,这些特性一般是不可见的

  • unsafe包广泛使用在和操作系统交互的低级包(如runtime、os、syscall和net),普通程序从不需要使用unsafe包

二.ffi

  • c作为最底层的高级语言,几乎所有广泛使用的包都导出了和c兼容的api

  • cgo是为c函数创建go绑定的工具,诸如此类的工具都叫做外部函数接口(ffi)

  • swig是另一个工具,提供了更复杂的功能集成c++的类

三.警告

  • unsafe包的内容不能滥用,如果对细节部分不经过深思熟虑,将会带来不可预测的、奇怪的、非局部的错误

  • reflect和unsafe包都应该避免使用,等到真正需要用到的时候再去研究