Go语言技术文章
-
Go 并发子测试中的诊断信息容易和其他分支混在一起。本文围绕 testing.T.Log、Logf、Name 与 t.Parallel,说明日志可见时机、上下文归属和常见边界。193 收藏 -
用 Go x/text/currency 把货币单位绑定到金额,再交给 message.Printer 按语言标签输出地区习惯的货币符号;同时说明 FromTag、FromRegion、ISO 和金额展示的边界。193 收藏 -
Go 的 x509.CertPool.AppendCertsFromPEM 用于把 PEM 编码的证书追加到信任池。本文说明单个证书、证书链、系统根证书合并和 TLS 使用时的判断边界。193 收藏 -
用来源选择小命令说明 Cobra MarkFlagsOneRequired 的至少一个语义,组合互斥约束实现恰好一个,并区分 Changed、默认值、空路径和显式 false 的处理。193 收藏 -
Go jsonschema/v5 的 schema 没有 $schema 时,会使用 Compiler.Draft 指定的草案,未设置时默认采用当前支持的最新草案。本文用代码和迁移清单说明怎样固定 Draft7、Draft2020,避免项目升级后校验语义漂移。193 收藏 -
Go 的 snowflake.ID 进入 JavaScript 时,真正危险的不是 ID 生成,而是把 64 位标识当成 JSON 数字交给 Number。本文解释默认 JSON 行为、2^53-1 安全边界,以及字符串和 BigInt 的稳妥接口方案。193 收藏 -
filepath.Rel 只按路径字符串计算相对关系,不会替你解析符号链接。本文用 Go 标准库演示先统一解析根目录与目标路径,再计算相对路径,并拆开解析失败、路径不兼容和目标尚不存在等边界。193 收藏 -
调用方先准备递增有序的切片,把同一份缓冲区反复传给 slices.BinarySearch;文章说明如何区分命中索引、未命中插入位置和结果容器分配。193 收藏 -
Go ServeMux 优先级取决于方法与路径共同限定的匹配集合。用库存路由示例解释严格子集、GET 与 HEAD、固定段与通配符,以及交叉模式为何注册时冲突,并说明兜底路由的取舍。193 收藏 -
Go go/doc.New 不负责解析源码,它接收 go/ast.Package 并整理包注释、导入路径和声明文档。本文用 NewFromFiles 组装 AST,说明 ParseComments、测试文件、Mode 与 AST 所有权边界。193 收藏 -
Go testing.F.Add 用来把固定回归样例加入模糊测试种子语料。本文说明参数类型和顺序、调用时机、普通 go test 与 -fuzz 的运行关系,以及如何整理稳定的 fuzz target。193 收藏 -
go/ast.MergePackageFiles 可以把同一包的多个 *ast.File 合并成一个文件级 AST,但它依赖已废弃的 ast.Package 和 MergeMode。本文用最小示例说明三个过滤选项的作用、导入与注释边界,以及何时应改用 go/types。193 收藏 -
Golang · Go问答 | 4星期前 | 反射 · panic · go · 类型转换 · Go strconv reflect.Value.Convert CanConvert ConvertibleTo
reflect.Value.Convert 只执行 Go 允许的类型转换,不负责把字符串解析成数字。本文说明 CanConvert 与 ConvertibleTo 的使用边界、strconv 解析文本的方法,以及 slice 转 array pointer 时必须补充的长度检查。192 收藏 -
Go 拉取模块失败时,先检查 go.mod 的 module 声明是否与仓库根路径、包导入路径和 /v2 主版本规则一致,再决定改 module、改 import 还是使用 replace。192 收藏 -
用 Go 的 url.Values 和 http.NewRequest 构造带重复查询参数的客户端请求,说明 URL 编码、请求头、错误处理与响应体关闭规则。192 收藏