golang
已收录文章:1857篇
-
Go 测试里临时目录、数据库连接和环境变量如果没有按作用域清理,单测会出现串状态和偶发失败。本文用 testing.T.Cleanup 对比 defer、子测试和失败路径,给出资源注册顺序与验收清单。461 收藏
-
浏览器上传大文件时,Go 服务端要把分片编号、字节范围、校验和与合并状态分开设计。本文用可落地的 HTTP 接口拆解 Range 边界、重复分片、失败重试和断点恢复。179 收藏
-
Golang · Go问答 | 1个月前 | 标准库 · golang · unicode · 字符串处理 · strings.Split Go strings.Fields 字符串分词 Unicode 空白 Go 空字符串Go 里处理用户输入时,strings.Fields 会按 Unicode 空白归并连续分隔符,而 strings.Split 会保留空字段。本文用可运行示例对比两者在连续空格、空字符串、中文空白和尾部分隔符上的结果,帮助你按数据边界选择 API。456 收藏
-
Go 程序明明调用了 Write,退出后日志文件却少了最后几行,常见原因不是字符串没生成,而是 bufio.Writer 仍留在用户态缓冲区,或 Flush、Close 的错误没有被检查。本文用一个退出前丢日志的场景,拆开缓冲写入、defer 执行时机、Flush 与 Sync 的边界,并给出可复测的收尾写法。496 收藏
-
Go 的一次性初始化函数适合把昂贵加载包装成只执行一次的调用,但也会把第一次返回的错误一起缓存。本文用配置加载示例说明并发安全、失败重试和可测试边界。160 收藏
-
Go 泛型中的数值约束不只是把 int 和 float64 列出来,还要处理底层类型、~ 运算符、接口组合和类型推断。本文用一个可运行的统计函数拆解约束边界。238 收藏
-
自定义 http.RoundTripper 做重试时,真正容易出错的不是循环次数,而是请求体能否重放、方法是否幂等以及错误如何返回。本文用一个可运行的重试 Transport 拆开这三个边界。457 收藏
-
Go 的 map 不能用 == 比较内容,只有和 nil 比较才合法。本文从可比较类型规则出发,拆解 len、reflect.DeepEqual 与排序后序列化三种校验方式的边界,并给出测试和生产代码中的选择建议。369 收藏
-
Go 泛型约束不只是列出可参与运算的类型,还能通过接口嵌入和方法集限制调用者。本文用一个可编译示例拆开类型集、方法集与指针接收者的边界。235 收藏
-
slices.Clone 能复制 Go 切片,但它解决的是底层数组共享,不等于深拷贝或并发安全。本文用容量边界、append 行为和嵌套引用三个检查点说明该怎么选。371 收藏
-
Golang · Go问答 | 1个月前 | 并发 · golang · 错误处理 · Context · Go问答 · Go 错误处理 Go问答 context.WithCancelCause context.Cause context.ErrGo 并发任务被取消时,ctx.Err() 只能告诉你是取消还是超时,context.Cause(ctx) 才能保留业务失败原因。本文用一个可运行的任务链说明 Cause、Err、errors.Is 和错误包装各自负责什么。263 收藏
-
Go 的 time.Timer 不是改一个时间数字那么简单:Reset 前要先处理已经到达的旧事件,重置后还要保证只有一条超时路径能结束本次等待。本文用可复现的请求超时流程说明 Reset、Stop、通道读取和 context 的边界。291 收藏