Golang标准库学习—unsafe

本文探讨了Golang中的`unsafe`包,它提供了绕过类型安全的手段来访问底层内存。内容包括`unsafe`包的主要用途、两个类型(ArbitraryType和Pointer)及其特性,以及三个方法(Sizeof、Offsetof和Alignof)的功能和示例。通过示例展示了如何使用这些工具进行内存操作,同时强调了不推荐常规使用的理由。
摘要由CSDN通过智能技术生成

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类型值
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值