Go教程技术文章
-
Go 的 -bench 参数支持按基准名称层级筛选。本文用 Benchmark 子基准示例说明正则匹配、父基准探测、精确到末级和团队脚本化运行的边界。220 收藏 -
在 Go 1.25+ 中,可先用 os.OpenRoot 建立可信目录边界,再用 Root.MkdirAll 创建父目录,并通过 Root.OpenFile 的 O_CREATE|O_EXCL 策略安全创建相对路径文件。本文同时说明覆盖、并发和部分写入边界。219 收藏 -
使用 Go 的 debug/elf 打开 ELF 文件后,可以调用 File.ImportedLibraries 读取动态链接阶段需要的库名。本文给出完整的错误处理、资源关闭和空结果判断方式,避免把动态依赖、导入符号和运行时实际加载结果混为一谈。219 收藏 -
Go 的 io.Pipe 可把只会写入的生产者连接到只会读取的消费者。本文用完整示例说明同步背压、关闭顺序、错误传播以及避免 goroutine 阻塞的方法。218 收藏 -
Go os/exec 应固定可信程序入口、分项传递参数并限制业务字段。本文用原创导出函数解释参数与命令分离、取消和退出错误、输出生命周期、PATH及平台差异,不把无 shell 等同于任意输入安全。218 收藏 -
Go 配置文件不要直接截断写入。本文用同目录唯一临时文件、Write、Sync、Close 和 Rename 组织一次原子替换,说明失败清理、权限、并发读改写以及平台持久化边界。218 收藏 -
Go channel 的关闭责任应跟随发送方和生命周期所有者划分。本文用单生产者、多生产者、取消信号三种场景说明 close 的位置、协调方式和排查清单,避免向已关闭通道发送数据。217 收藏 -
Go compress/flate 的 HuffmanOnly 只做 Huffman 熵编码,不再寻找 Lempel-Ziv 重复串。它更适合已经经过 Snappy、LZ4 等 LZ 类压缩、但字节频率仍明显偏斜的数据;普通文本直接使用它往往会牺牲压缩率。本文用原创示例说明选择边界、资源收尾和上线前对比方法。217 收藏 -
Go 的 gzip.Writer 可以在首次写入前通过 Name 和 ModTime 设置 GZIP 头元数据;本文给出可读回核对的完整示例,并说明 Close、Reset、零值时间和编码边界。215 收藏 -
Go flag.Func 可以把字符串解析、业务校验和错误返回集中在回调中。本文用环境参数示例说明先校验后赋值、FlagSet 错误策略、重复参数行为和表驱动测试。214 收藏 -
Go 查询接口的可选参数不宜隐藏在 Context 中。通过显式 Options、默认值校验和类型化追踪标识入口,划清业务输入、请求元数据与取消传播的职责边界。214 收藏 -
errors.As 不只匹配具体错误类型,也能匹配错误链中实现某个接口的错误。声明接口变量并把其地址传入 errors.As,即可按能力处理不同实现,同时保留多层包装上下文。213 收藏 -
Go 验证 HMAC 时应先用同一密钥和同一原始消息重算标签,再把对方标签解码为字节,最后交给 hmac.Equal 做恒定时间比较。本文给出函数与 Webhook 示例。213 收藏 -
解释 Go fs.Glob 在 ReadDir 回退和 GlobFS 委托路径中如何处理 I/O 错误,并给出使用 WalkDir 保留底层错误、避免把读取失败误判为无匹配的完整写法。212 收藏 -
Golang · Go教程 | 1星期前 | JSON · 时间处理 · Go教程 · database/sql · 后端开发 · RFC3339 Go时间序列化 time.Duration JSON 数据库时间戳 sql.NullTime
用一个小型任务接口统一 Go 业务时间、Duration 与数据库可空时间戳,给出自定义 JSON 类型、仓储映射和往返测试。212 收藏