golang
已收录文章:14100篇
-
nil是Golang中表示引用类型零值的预定义标识符,适用于指针、切片、map、channel、interface等类型;对于指针,nil表示不指向任何地址,解引用会panic;nil切片长度和容量为0,可安全用于range和append;nilmap不能写入,读取返回零值,需make初始化;nilchannel发送接收会阻塞,关闭会panic。340 收藏
-
使用fsnotify监听配置文件变化,2.定义Config结构体并实现reloadConfig函数重新加载,3.用sync.RWMutex保护配置读写,4.在goroutine中监听事件并触发重载,实现不重启更新配置。340 收藏
-
减少Golanggoroutine创建开销的关键在于复用,通过goroutine池化、任务批处理和避免不必要的goroutine启动来降低开销。1.goroutine池化通过预先创建并复用固定数量的goroutine,利用channel分发任务,避免频繁创建和销毁带来的性能损耗。示例代码展示了一个基于channel的worker池,多个worker持续从任务队列中取任务执行,任务完成后goroutine返回池中待命。2.任务批处理将多个小任务合并由单个goroutine处理,适用于大量相似任务场景,如批量340 收藏
-
使用gotest和gotestsum生成结构化测试报告,结合CI流程实现自动化。首先通过gotest-coverprofile生成覆盖率数据,并用gotoolcover转换为HTML报告;接着使用gotestsum将测试结果输出为JUnitXML格式,便于CI系统解析;在GitHubActions中集成该过程,自动生成并上传test-results.xml构件;还可通过自定义TestMain函数拦截测试生命周期,生成包含统计图表的HTML报告。关键在于将测试输出转化为机器可读格式并在CI中固化流程,提升质340 收藏
-
Golang的text/template用于动态生成文本,支持数据绑定、条件循环控制、自定义函数及模板嵌套。通过{{.}}引用数据,if/range实现逻辑判断与遍历,FuncMap注册函数如upper,define/template实现模块化复用,适用于配置、日志等文本生成场景。340 收藏
-
Go测试文件应与被测代码同包且以_test.go结尾,支持单元测试、基准测试和表驱动测试,可通过接口模拟依赖,使用t.Error报告错误,Benchmark函数评估性能,结合buildtags管理测试类型。340 收藏