error
数据结构 type error interface { Error() string } 本质是一个接口,有一个Error方法 自定error 1、通过errors包,它有一个New()方法 2、通过fmt.Errorf() 3、自定义errorenum模块,实现Error()方法
数据结构 type error interface { Error() string } 本质是一个接口,有一个Error方法 自定error 1、通过errors包,它有一个New()方法 2、通过fmt.Errorf() 3、自定义errorenum模块,实现Error()方法
var 用于变量声明 声明变量,变量默认是该类型的0值 var a *int,给a赋值会panic,因为a的默认值是null,没有内存空间 new 为变量开辟内存空间 返回指针类型 可用于所有类型 make 为变量开辟内存空间,也能同时初始化 返回的是引用类型本身 只能用于slice,map,channel 传值or传指针 ...
slice and array 相同点 len()获取长度,通过下表获取 分配一块连续的内存空间 array 值类型 var,:= 创建, 不可用make(运行时)、append、copy 创建后长度、容量不可改变 sl...
context包 在goroutine中传递上下文信息、信号控制、公共参数等 context数据结构 type Context interface { Deadline() (deadline time.Time, ok bool) // 获取当前context的截止时间 Done() <-chan struct{} // ...
go简介 静态类型 运行是runtime 基础题 https://learnku.com/articles/35063 规范 相似的变量放在一起声明 import包顺序,标准库、第三方库 包名全部小写 map、slice初始化 枚举从1开始 可以指定slice的容量 变量类型 值类型:array、int、struct 引用...
数据结构 CSP的设计理念:channel 在go语音中实现goroutine间通信,分有缓存区和无缓存区 分单向和双向模式 结构 type hchan struct { qcount uint // 队列中剩余元素数量 dataqsiz uint ...
操作系统基础 COW(写时复制) https://segmentfault.com/a/1190000039869422 CAS(对比和交换) https://blog.csdn.net/Baronrothschlid/article/details/102010798 存在问题 ABA问题;解决:采用版本号 自旋时间过长;解决:设置自旋时长和自旋次数 只能保证一个共享变...
sync.Once - 函数只执行一下 demo package main import ( "fmt" "sync" ) func main() { var once sync.Once onceBody := func() { fmt.Println("Only once") } done := make(chan ...