golang
已收录文章:50篇
-
使用临时文件、内存缓冲和接口抽象可安全测试Golang文件操作。1.用os.CreateTemp创建临时文件,测试后删除;2.通过FileWriter/FileReader接口解耦,测试时用bytes.Buffer模拟;3.多文件场景用os.MkdirTemp创建临时目录,测试完清理。确保测试隔离、可重复且不依赖固定路径。302 收藏
-
适配器模式通过定义统一接口并封装第三方服务,使不兼容的接口能协同工作;例如在Go中为微信和支付宝支付创建适配器,实现统一的Payment接口,从而解耦业务逻辑、提升可维护性与扩展性。294 收藏
-
Golang跨平台编译需设置GOOS和GOARCH,如GOOS=linux、GOARCH=arm64;通过gotooldistlist查看支持平台,结合Docker或CI实现多平台构建。288 收藏
-
Golang切片是引用类型,基于底层数组的指针、长度和容量实现;创建方式包括基于数组、字面量和make函数;append操作可能触发扩容,扩容时若原容量小于1024则翻倍,否则增加1/4;扩容会分配新数组并复制数据,导致地址变化;为避免频繁扩容应预先设置足够容量;copy函数复制时以较短切片为准;nil切片可直接append;注意越界、共享底层数组及nil判断等常见问题。284 收藏
-
goroutine泄漏主因是协程无法正常退出,需通过context控制生命周期、正确关闭channel、避免阻塞及使用pprof监控来预防。283 收藏
-
闭包能捕获并持续访问外层函数变量,如counter函数中count被递增且生命周期延长至堆;闭包引用变量而非值拷贝,循环中易因共享i导致所有闭包输出相同值。275 收藏