Go
理解 GMP
•schedule 源码注解
•findRunnable 源码注解
•execute 源码注解
•gosched_m 源码注解
•park_m 源码注解
•goexit0 源码注解
•retake 源码注解
•syscall 源码注解
Go
理解 map
•核心数据结构
•构造方法 源码注解
•读流程 源码注解
•写流程 源码注解
•删流程 源码注解
•遍历流程 源码注解
•渐进式扩容 源码注解
Go
理解 channel
•核心数据结构
•构造方法 源码注解
•写 channel 过程源码注解
•读 channel 过程源码注解
•非阻塞模式 源码注解
•两种读协议
•关闭 channel 源码注解

Go 哨兵错误

有这种写法,定义一个全局变量的 error ,在用到的时候直接返回 1var ErrNotFound = errors.New("404") 这样写有个隐患,如果有人在某个方法里写了句 1errNotFound = nil ...

Go
Go
理解 context
•核心数据结构
•emptyCtx 源码注解
•cancelCtx 源码注解
•timerCtx 源码注解
•valueCtx 源码注解

如何使 Go Struct 更高效

两个 Go Struct 可以包含完全相同的字段,但一个Struct 体可能比另一个Struct 体需要更多或更少的内存。 创建示例Struct12345678910111213141516package maintype City uint8con...

Go

Go 删除切片元素

最简单的方法我们都知道,删除切片元素的写法是: 123func removeElementByIndex[T any](slice []T, index int) []T { return append(slice[:index], sli...

Go

Go json里的数字是什么类型?

直接说结论:json里的数字会被优先解析成 float 123456789101112131415jsonData := `{ "stringKey": "Hello, world", ...

Go

Go 函数参数为接口数组时

如果 func 要求入参为接口数组: func F(arr []IShape) 然后结构体X指针实现了这个接口: var _ IShape = &X{} 这时候这么写是会报错的: 12arr := []*X{...

Go

Go 实现接口到底加不加指针?

1234567891011121314type Person interface { Say()}type A struct{}type B struct{}func (x A) Sa...

Go
123