2024-10-14 Go-os.LookupEnv Go随笔 1func LookupEnv(key string)(string, bool) 检索由键命名的操作系统环境变量的值。如果变量存在于环境中,则返回值(可能为空)并且布尔值为真。否则返回值为空,布尔值为假。 我遇到的代码是。 123456
2024-10-11 Go Questions(Go 语言问题集) Go书栈网 qcrao 的项目,记录了一些比较深刻的问题。 项目地址 channel什么是 CSPCommunicat ing Sequential Processes。 这也是 Tony Hoare 在 1978 年发表在 ACM 的一篇论文。论文里
2024-09-26 Go Goroutine数量 Go随笔 受GMP模型影响, 分别考虑三个元素的限制。 G 的限制基本上是受内存空间的限制。假设一个 Goroutine 创建需要 4k: 4k * 80,000 = 320,000k ≈ 0.3G内存 4k * 1,000,000
2024-09-26 Go GMP模型 Go随笔 G:Goroutine,实际上我们每次调用 go func 就是生成了一个 G。 P:Processor,处理器,一般 P 的数量就是处理器的核数,可以通过 GOMAXPROCS 进行修改。 M:Machine,系统线程。 也就是 M 必须
2024-09-26 Go time.Tick 和 time.After 内存泄露 Go随笔 time.Tick 和没结束的 timer.After 在函数结束时不会被gc, 于是导致内存泄漏 解决方法是使用 time.Ticker 并进行正常关闭 Go1.23 修复啦, 一旦不引用就可以gc
2024-09-26 Go map的key Go随笔 boolean, numeric, string, pointer, channel, interface 均可作为key 其中 interface 的相等判定是动态类型和动态值都要相等 然后 structs 和 arrays 如果只含有上
2024-09-26 Go init之坑 Go随笔 init 函数是绑定包的, 其执行顺序在包内变量声明之后, 调用main函数之前 所以第一个问题是, 如果把函数绑定到包内变量, 则会在init之前执行 init 一个包内可以多个, 一个go文件内也可以有多个, 同文件中的调用顺序由声明顺
2024-09-26 Go test中运行指定的benchmark Go随笔 我遇到的问题是跑benchmark的时候, 非benchmark的测试用例也会跑。 查了查应该加上 -run=none 来禁用Testing
2024-09-26 GO 断言(testify) Go随笔 Go标准包中为什么没有断言,官方在FAQ里面回答了这个问题。 官方说是为了防止程序员在错误处理上偷懒。 但其实个人感觉引入的话可读性更高嘿嘿 基本使用方法大概如下 12345func TestTestify(t *testing.T)