Go语言技术文章
-
go vet 的 %w 指针告警不等于禁止指针错误。本文结合值接收者与指针接收者示例,解释错误链动态类型、Is/As 匹配差异,以及保留 CI 检查、记录例外和修复错误契约的方法。178 收藏 -
go test 只会复用满足缓存条件的成功测试结果。环境变量改变后仍看到缓存提示,先确认测试是否读取了该变量、变量是否真的传入进程,再用 -count=1 强制本次重新执行。495 收藏 -
Go 1.27 修复了 gofmt 的列对齐判断,少量旧文件重新格式化时可能出现空格变化。本文说明如何固定 Go 工具链、审阅纯格式化 diff,并把检查接入 CI。288 收藏 -
Go 1.27 的 response file 解析属于 compile、link、asm、cgo、cover、pack 等底层工具,不是 go build 外层任意参数的通用语法。带空格的参数必须按 GCC-compatible 规则用单双引号包住,并先确认到底是哪一层在解析。350 收藏 -
Go 启用 GOEXPERIMENT=simd 后构建失败,应分别核对工具链、实验环境、目标架构与 API 版本。本文提供包探针和项目构建排查命令,说明标量回退、基准比较方法与实验功能上线边界。224 收藏 -
Go 1.27 的 testing/synctest.Sleep 不只是等待虚拟时间,还会等 bubble 内其它 goroutine 稳定阻塞。本文解释只写 time.Sleep、未进入 bubble、使用真实网络或没有清理后台任务时为什么仍会不稳定,并给出按版本选择的最小写法。306 收藏 -
go/types.Hasher 面向源码类型与 types.Identical,reflect.Type 面向运行时类型表示。本文解释两者为什么不能直接比较哈希值,以及源码分析缓存和运行时缓存分别应该怎样选键。475 收藏 -
token.File.String 只按 Name、Base 和 End 生成固定的文件描述。要控制输出中的文件标识,应在 AddFile 时传入 filename;需要自定义日志格式时,读取 Name、Base、Size、End 后自行拼接。396 收藏 -
Scanner.End 返回 token.Pos。若要得到文件名、行号和列号,应使用初始化 Scanner 时的 token.File.Position 转换;所谓 PositionEnd 不一致通常是类型、字节偏移或合成 token 边界混用造成的。409 收藏 -
StringLen 可避免为查询长度而展开完整字符串,但不保证无限输入或固定耗时。本文说明 int64、Unknown、panic 与字节单位边界,给出长度展示组件及分阶段资源预算建议。484 收藏 -
Golang · Go问答 | 1星期前 | 标准库 · go · database/sql · Go database/sql driver.ErrSkip NamedValueChecker DefaultParameterConverter ColumnConverter
Go 数据库驱动的 NamedValueChecker 不必覆盖所有参数类型。本文说明 driver.ErrSkip 如何把未处理类型交给 ColumnConverter 或 DefaultParameterConverter,并区分普通转换错误与 ErrRemoveArgument,帮助定位参数类型和数量问题。394 收藏 -
Golang · Go问答 | 1星期前 | 标准库 · go · database/sql · Go database/sql NamedValue driver.NamedValueChecker ErrSkip ErrRemoveArgument
Go 数据库驱动可以通过 NamedValueChecker 接收自定义参数类型。本文用一个最小驱动侧示例讲清 Conn 与 Stmt 的检查顺序、值转换、ErrSkip 和 ErrRemoveArgument 的边界,帮助排查参数不生效或数量不匹配。419 收藏 -
ML-DSA 验签失败时,先区分 PEM、PKIX 解析和公钥动态类型,再检查参数、消息与上下文。本文给出安全类型断言示例,并说明类型正确不代表公钥身份可信。389 收藏 -
Go uuid.Parse 对 UUID 十六进制大小写不敏感,但会区分长度、连字符、前后空白和其他格式边界。本文说明 Parse、Validate 与 String 的配合方式,帮助排查请求参数解析失败。108 收藏 -
Go bytes.CutLast 找不到分隔符时应直接判断 found,而不是依赖 before 或 after 的长度。本文说明未命中、末尾命中、空分隔符、原始切片和 Go 版本边界。221 收藏