Go语言技术文章
-
Go 的 pem.Block.Headers 用 map[string]string 表示 PEM 外层的可选键值头部。本文通过 Encode 和 Decode 示例说明如何保存、读取自定义元数据,并处理空头部、重复键和编码失败等边界。346 收藏 -
Golang · Go问答 | 4星期前 | 并发 · channel · goroutine · Go问答 · Go channel 关闭 channel 接收零值 双值接收 range channel
Go channel 关闭后,接收操作会在没有更多数据时返回元素类型的零值。要区分真实业务零值与关闭信号,应使用双值接收的 ok 标志,或用 range 消费到结束;本文同时说明缓冲区残留、关闭责任和重复 close 的常见边界。345 收藏 -
解释 Go runtime/cgo.Handle 删除后的有效性边界:C 端继续回传旧句柄时,Go 侧 Value 会触发 panic,并给出回调停止、所有权交接和重复释放的处理方式。345 收藏 -
用 Go 1.23 的 maps.DeleteFunc 批量清空 map,理解保留容器、别名可见性、nil map、容量与并发访问之间的边界。345 收藏 -
Go 的 FlagSet 能为每个子命令建立独立参数空间。本文通过 ContinueOnError、纯解析函数和表驱动测试,讲清命令分派、错误输出与业务执行如何解耦。345 收藏 -
Go JSON API 客户端重试不能只靠循环。本文用 net/http、context 和 JSON 字节重建请求,划分网络错误、429/5xx、4xx 与副作用请求的边界,并限制尝试次数、总超时和退避时间。345 收藏 -
Go url.JoinPath 会自动清理路径中的多余斜杠,但 https:// 的双斜杠是协议分隔符。本文从路径拆分、PathEscape 和 EscapedPath 三个角度排查异常拼接。344 收藏 -
用 Go maps.EqualFunc 比较带 float64 字段的 map,拆清键集合、结构体值、绝对与相对误差、NaN 和无穷大的处理边界。344 收藏 -
Go 的 io.Copy 会流式复制大文件,并优先使用 WriterTo 或 ReaderFrom;覆盖旧文件时仍要显式截断。本文给出 O_TRUNC 最小写法,以及用 CopyN、临时文件、Sync 和 Rename 处理提前 EOF 与失败回滚的实现。344 收藏 -
讲清 Go pem.Decode 的 block/rest 返回关系,给出连续读取多个 PEM 区块的循环、nil 退出边界和按 Type 分流解析的方法。344 收藏 -
Golang · Go教程 | 3天前 | 标准库 · 数据库 · uuid · Go教程 · database/sql · Go标准库uuid uuid.New UUID数据库 BINARY(16) CHAR(36) uuid.Parse
Go 1.27 标准库 uuid 生成 UUID 后,如何根据数据库字段选择 BINARY(16) 或 CHAR(36),并完成参数绑定、查询读回和 uuid.Parse 校验。344 收藏 -
go test -race 出错时,先确认是运行时竞态、普通测试失败还是平台不支持,再沿着 Read by、Previous write 和 goroutine 创建栈定位共享状态,修复后用 -count=1 复查。343 收藏 -
Go 的 math/big.Rat.SetString 会把合法十进制解析为精确有理数,但显示精度与内部精度不是一回事。本文用 RatString、Denom、FloatPrec 和 FloatString 分清四种检查方式。343 收藏 -
围绕 Go testing.T Cleanup 讲清后注册先执行的规则,示范如何按资源依赖登记清理函数、隔离子测试资源并处理清理错误。343 收藏 -
Golang · Go问答 | 3星期前 | Go问答 · Go fmt.Fscan剩余换行 Go读取换行分隔输入 fmt.Fscan与ReadString Go空行处理 bufio.Reader整行读取
解释 Go fmt.Fscan 将换行视为空白分隔符时的边界行为,给出切换到 ReadString、Fscanln 和整行解析的实用方案。343 收藏