Packge unsafe
import "unsafe"
unsafe包提供了一些跳过go语言类型安全限制的操作。能够访问底层内存,使用unsafe函数可以提高访问对象的速度,但是这不是go语言推荐使用的,容易出现莫名其妙的问题,不利于扩展与维护。
unsafe包中真正的代码只有五行
type ArbitraryType int type Pointer *ArbitraryType func Sizeof(x ArbitraryType) uintptr func Offsetof(x ArbitraryType) uintptr func Alignof(x ArbitraryType) uintptr
unsafe包的用处有很多,可以通过unsafe对数组、结构体等进行操作,当然这是在某些情况下的特殊操作。
包括两个类型 :
type ArbitraryType int
ArbitraryType 是int的一个别名,但是代表一个任意GO表达式类型。
type Pointer *ArbitraryType
Pointer类型用于表示任意类型的指针。有4个特殊的只能用于Pointer类型的操作:
1. 任意类型的指针可以转换为一个Pointer类型值