Go教程技术文章
-
Go 的 io.Copy 会流式复制大文件,并优先使用 WriterTo 或 ReaderFrom;覆盖旧文件时仍要显式截断。本文给出 O_TRUNC 最小写法,以及用 CopyN、临时文件、Sync 和 Rename 处理提前 EOF 与失败回滚的实现。344 收藏 -
讲清 Go pem.Decode 的 block/rest 返回关系,给出连续读取多个 PEM 区块的循环、nil 退出边界和按 Type 分流解析的方法。344 收藏 -
Golang · Go教程 | 1星期前 | 标准库 · 数据库 · 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 收藏 -
用请求级 context 派生查询超时,把它传给 database/sql 的 QueryContext,并在取消、超时和驱动错误之间做出清晰判断,同时保证结果集关闭和连接池资源回收。344 收藏 -
Go 1.22 新增 reflect.TypeFor[T](),可以在没有现成值时直接取得泛型参数 T 对应的 reflect.Type。本文通过最小示例、接口类型对比和泛型注册表说明 TypeFor 与 TypeOf 的区别及使用边界。343 收藏 -
Go database/sql 的 Scanner 接收到的 []byte 可能由驱动暂时拥有,下一次 Scan 后就不再适合长期引用。本文区分 *[]byte、sql.RawBytes、interface{} 和自定义 Scanner 的复制边界。343 收藏 -
encoding/csv.Reader 的 ReuseRecord 可以复用上一轮记录切片的底层数组,减少大批量读取时的切片分配。本文给出逐行转换、分批写入与跨轮次复制的安全写法。342 收藏 -
Go io.MultiWriter 按顺序写入多个目标,遇到错误会立即停止。本文用失败 Writer 说明 n、err、短写和未执行目标的边界,并给出多目标尽力写入时的补偿方案。342 收藏 -
Golang · Go教程 | 1星期前 | TLS · Go教程 · Go x509 VerifyOptions ExtKeyUsageServerAuth ExtKeyUsageClientAuth mTLS证书用途
讲解 Go crypto/x509 VerifyOptions.KeyUsages 的服务器与客户端证书用途差异,给出显式验证函数、常见错误、TLS 配置映射和回归测试清单,避免空 KeyUsages 默认值与 ExtKeyUsageAny 带来的误判。341 收藏 -
Go 的 log/slog 可以把 HandlerOptions.Level 设置为 slog.LevelVar,在不重建 Logger 的情况下运行时切换最低日志级别。本文给出完整配置示例,说明 Set、Level、Enabled 的边界,以及多 Handler、并发更新和昂贵参数计算时的处理方式。340 收藏 -
Go tcell 处理键盘事件时,用 Key() 区分 KeyRune 与命名功能键,再用 Str() 读取普通字符;本文补充 Ctrl、Shift-Tab 和终端协议的兼容边界。340 收藏 -
介绍Goja注册Go回调函数的两种写法,使用完整示例说明参数转换、原生FunctionCall、脚本异常接收和运行时并发限制。340 收藏 -
Go 里给 TLS 客户端加入自定义根证书时,先保留系统 CertPool,再用 x509.CertPool.Clone 建立隔离副本,避免不同租户或连接配置互相污染。本文说明最小写法、Clone 与直接赋值的边界,以及 RootCAs 的发布检查。339 收藏 -
Go 模糊测试发现失败输入后,不要把 crash artifact 当作临时文件删除。本文以 FuzzParse 为例,说明如何定位 testdata/fuzz 语料、用 -run 精确复现,并让修复后的失败输入长期成为默认回归测试。339 收藏 -
用 Go 的 image/draw.DrawMask 把源图按 Alpha 蒙版叠加到目标图,掌握坐标对齐、draw.Over 与常见偏移排查方法。338 收藏