unsafe包

package unsafe
import "unsafe"

unsafe包提供了一些跳过go语言类型安全限制的操作。

Index
返回首页

type ArbitraryType
type Pointer
func Sizeof(v ArbitraryType) uintptr
func Alignof(v ArbitraryType) uintptr
func Offsetof(v ArbitraryType) uintptr
type ArbitraryType
type ArbitraryType int

ArbitraryType在本文档里表示任意一种类型,但并非一个实际存在与unsafe包的类型。

type Pointer
type Pointer *ArbitraryType

Pointer类型用于表示任意类型的指针。有4个特殊的只能用于Pointer类型的操作:

1) 任意类型的指针可以转换为一个Pointer类型值
2) 一个Pointer类型值可以转换为任意类型的指针
3) 一个uintptr类型值可以转换为一个Pointer类型值
4) 一个Pointer类型值可以转换为一个uintptr类型值
因此,Pointer类型允许程序绕过类型系统读写任意内存。使用它时必须谨慎。
func Sizeof
func Sizeof(v ArbitraryType) uintptr

Sizeof返回类型v本身数据所占用的字节数。返回值是“顶层”的数据占有的字节数。例如,若v是一个切片,它会返回该切片描述符的大小,而非该切片底层引用的内存的大小。

func Alignof
func Alignof(v ArbitraryType) uintptr

Alignof返回类型v的对齐方式(即类型v在内存中占用的字节数);若是结构体类型的字段的形式,它会返回字段f在该结构体中的对齐方式。

func Offsetof
func Offsetof(v ArbitraryType) uintptr

Offsetof返回类型v所代表的结构体字段在结构体中的偏移量,它必须为结构体类型的字段的形式。换句话说,它返回该结构起始处与该字段起始处之间的字节数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值