Go语言技术文章
-
Go 的 io.Copy 会优先尝试 WriterTo 和 ReaderFrom 快路径。本文用可复现的接口实现拆开选择顺序,并说明何时回退到缓冲复制。138 收藏 -
解释 Go 原生 fuzz 测试中 testing.F 入口、testing.T 回调、f.Add 种子与失败语料的职责关系,并给出可运行的 go test 命令。138 收藏 -
reflect.Value.IsZero 判断的是类型零值,time.Time.IsZero 判断的是零时间点。本文拆开值、指针和接口字段的反射入口,给出避免时间字段误判的写法与检查清单。138 收藏 -
讲清 Go slices.Delete 的区间边界、尾部引用清理、DeleteFunc、Clip 与 Clone 的差异,帮助在原地删除与释放过大底层数组之间做出合适选择。138 收藏 -
介绍 Go database/sql 中 sql.Named 的正确用法,讲清具名占位符、NamedArg、参数名前缀、驱动兼容性与错误处理,并给出可复用的多条件查询示例。138 收藏 -
Go 处理归档条目或抽象文件系统时,可以用 io/fs.ValidPath 先判断路径格式,再把合法名称交给 FS.Open 或 fs.ReadFile。本文用固定样例说明斜杠、根目录、空元素、点元素与文件存在性的边界。138 收藏 -
Go slog通过Group组织单条记录的局部字段,通过WithGroup派生模块Logger。结合导入任务示例说明公共根字段、绑定顺序、嵌套路径和查询取舍。138 收藏 -
Go Base64 标准编码与 URL 编码的区别在字符表,Raw 决定是否省略填充。本文对照四个编码对象,说明 URL 参数转义、存储约定、解码错误及规范文本处理边界。138 收藏 -
Go 的 io.Reader 读取循环里,io.EOF 通常表示输入已经结束,但 n 仍可能大于 0。本文用一个可复现的读取器说明短读、空读和 EOF 的处理顺序,避免丢掉最后一段数据或写出忙等循环。137 收藏 -
os.File.ReadFrom 不只是把 io.Reader 读进文件:它会先检查文件状态,再按平台选择专用路径或通用读取循环。本文用 io.Copy、文件偏移和短写场景说明如何判断结果。137 收藏 -
Go 1.27 新增 bytes.CutLast,用一个 found 布尔值和 before、after 两个切片处理最后分隔符;本文对照 LastIndex 说明未找到分隔符时的返回边界与迁移写法。137 收藏 -
Go 交叉编译后的二进制运行时报架构错误时,先核对 GOOS、GOARCH 与产物格式,再区分纯 Go、cgo、动态加载器和目标机器不匹配,避免只改一个编译参数。137 收藏 -
SetMaxOpenConns(1) 会把所有需要数据库连接的并发操作压到单车道,吞吐下降通常来自连接获取等待。本文用 DBStats 区分排队与 SQL 慢,并给出连接池调参方法。137 收藏 -
Go 的 0644 是 Unix 权限表达式。Windows 上 os.Chmod 只使用 0o200 位控制只读属性,用户和组级访问控制要交给 Windows ACL。137 收藏 -
Golang · Go问答 | 1个月前 | 基准测试 · Go问答 · Go string []byte map key Go map key 分配 string 转 []byte 性能 Go AllocsPerRun Go map 性能评估
Go 的 []byte 不能直接作为 map key。本文拆分 string 转换、map 查找和写入三个成本,用 AllocsPerRun 与基准测试建立可复用的分配评估方法。137 收藏