Go语言技术文章
-
Go 模糊测试不是输入越大越好。本文用 testing.F 的 seed、前置过滤和 go test 运行参数,把输入长度、无效样本、最小化时间与总运行时间放进一套可控预算。214 收藏 -
Go json.Unmarshal 解码时间字段时报错,先区分时间格式不符合 RFC3339 还是 JSON 类型与结构体字段不匹配,再决定保留 time.Time、增加自定义 UnmarshalJSON,或使用中间结构完成外部格式适配。214 收藏 -
Go 1.27 将 crypto/tls Config.Rand 标记为弃用。本文说明生产配置为什么应保持 Rand 为 nil,以及测试中如何用 testing/cryptotest.SetGlobalRandom 获得可重复但有作用域边界的随机源。214 收藏 -
Go IPv6 控制消息需要先启用对应接收选项,再用 PacketConn.ReadFrom 取得逐包元数据。本文给出完整接收函数,区分配置与发送,并解释空值和平台限制。214 收藏 -
Go 的 github.com/pkg/sftp 同时提供 Rename 和 PosixRename,但两者对已存在目标文件的处理语义不同。本文用远程发布场景说明覆盖边界、扩展探测和安全选型。214 收藏 -
Golang · Go教程 | 1星期前 | 标准库 · JSON · Go教程 · encoding/json · Go encoding/json bytes.Buffer json.Compact JSON压缩
Go json.Compact 用已有 JSON 字节和 bytes.Buffer 生成紧凑 JSON,只删除结构中的无意义空白,不改动字符串值。本文说明最小用法、错误处理、Buffer 复用,以及它和 json.Indent、Marshal、HTMLEscape 的边界。214 收藏 -
在重复等待场景中,time.After 适合一次性超时;需要复用和动态调整时,应持有 time.NewTimer 返回的 Timer,并按 Go 版本选择正确的 Reset 与清理方式。214 收藏 -
Go JSON 时间字段可通过自定义 UnmarshalJSON 兼容有限格式,并显式约定无时区输入的含义。本文给出字段存在性、null、错误反馈和 UTC 统一回写的完整示例。214 收藏 -
Go pprof 端口不只是一个性能页面:/debug/pprof/ 可能返回命令行、栈信息和运行时 profile,CPU 与 trace 采集还会带来额外开销。本文说明暴露风险,并给出只监听本机、受控访问和发布前检查的方法。214 收藏 -
用 Go 标准库 expvar 注册请求计数器并通过 /debug/vars 暴露 JSON 指标,覆盖独立 Handler、并发更新、重复注册和最小读取方式。214 收藏 -
slog 包装 Handler 丢失 With 字段,常见原因是未保留派生状态。本文给出四方法委托实现与父子、分组、等级测试,并区分 Record 属性和 context.Value 的处理边界。213 收藏 -
Go 标准库 ServeMux 可以在路由模式中声明 {id} 等命名通配符,再用 Request.PathValue 读取。本文说明单段与尾通配符的区别、空字符串边界,以及直接测试处理器时如何用 SetPathValue 准备参数。213 收藏 -
用 encoding/binary 的 BigEndian 统一读写固定结构,说明结构体字段布局、binary.Read 与 binary.Write 的用法,以及短数据和字节序不一致时的处理边界。213 收藏 -
Go 1.27 为数据库驱动增加 RowsColumnScanner,让驱动可以按当前列直接写入用户目标。本文拆开 NextRow、ScanColumn、ScanContext 与旧版 Next 的职责,给出兼容实现骨架和接入边界。213 收藏 -
解释 Go x/text/unicode/bidi 中段落主方向、连续方向 run 和视觉顺序的区别,给出混合中文、拉丁字母、阿拉伯文字与数字时的处理写法。213 收藏