知识卡片
Init承载初始化副作用
内容
init 函数在包初始化阶段自动执行,适合注册驱动或准备全局状态,但过多副作用会降低可预测性。发散:初始化越隐式,调试启动顺序越痛苦。
参考来源
- 位置:《Go语言入门到实战(共3册)》第17章《Go语言编程入门与实战技巧:第7章 包》(源文件:_epub-src/text/part0029_split_000.html)
- 结论依据:原文围绕“init”给出定义、机制、流程、对比或限制条件,本卡片据此提炼可迁移的语言/工程结论,并补充了边界或实践启发。
- 原始内容:导入的包将会导致一个编译错误。但是有时候我们只是想利用导入包而产生的副作用:它会计算包级变量的初始化表达式和执行导入包的init初始化函数。这时候需要抑制“unused import”编译错误,可以用下画线来重命名导入的包。像往常一样,下画线为空白标识符,并不能被访问: 这个被称为包的匿名导入,它通……