Go语言技术文章
-
Go 1.24 引入的 testing.B.Loop 可以把基准测试的一次性初始化和清理放到计时边界之外。本文用固定输入的哈希基准说明正确写法、b.N 迁移边界、编译器优化注意事项和 go test 检查命令。117 收藏 -
讲清 Go regexp.QuoteMeta 如何把用户输入转成字面匹配片段,并给出与固定正则组合、处理空输入和区分替换模板的实践方法。116 收藏 -
说明 Go net.Resolver 如何通过 LookupIP 的 ip4/ip6 和 DialContext 的 tcp4/tcp6 表达地址族偏好,区分 PreferGo、StrictErrors 与真正的 IPv4/IPv6 选择边界。116 收藏 -
用 Go testing/fstest.MapFS 在内存中构造文件树,让依赖 fs.FS 的读取逻辑脱离临时目录,并覆盖内容、目录和缺失文件测试。116 收藏 -
解释 Go bufio.Scanner 遇到 ErrFinalToken 时的停止条件,区分最后 token、nil token、Scan 返回值和 Scanner.Err。116 收藏 -
解释 Go url.ParseQuery 遇到未编码分号时返回错误的原因,区分分隔符与参数值,给出正确编码、旧协议兼容和回归检查方法。115 收藏 -
Go 文件读取不是简单比较 API 名称:完整内容且能放进内存预算时用 os.ReadFile,只取固定范围或需要随机访问时用 File.ReadAt;本文用文件大小、访问模式和短读处理给出判断清单。115 收藏 -
Golang · Go问答 | 3星期前 | 连接池 · 性能排查 · HTTP客户端 · Go问答 · Go net/http Transport HTTP连接复用 DisableKeepAlives TCP keepalive
Go 的 Transport.DisableKeepAlives 控制 HTTP keep-alive 与连接复用,不等于 TCP keepalive。本文用请求序列、连接池边界和可观察代码说明关闭后的影响,以及适合关闭和保持默认值的场景。115 收藏 -
Go 使用 archive/tar 解包时,先把 Header.Name 归一化为目标目录内的相对路径,再用 filepath.Rel 判断边界,并分别处理目录、普通文件和符号链接。115 收藏 -
Go 文件跨盘迁移不要直接依赖 os.Rename;应在目标目录创建临时文件,复制并重新计算 SHA-256 校验,确认一致后再 Rename 替换目标,成功后按需删除源文件。115 收藏 -
本文演示 Go base32.NewEncoding 自定义 32 字节字母表的写法,说明唯一字符、UTF-8 字节、填充、大小写和跨系统兼容边界。115 收藏 -
Go 泛型函数的类型推断失败,通常不是函数体问题,而是普通实参、赋值上下文或类型约束没有共同解。本文用最小示例拆解常见报错,并给出显式实例化和边界检查方法。114 收藏 -
掌握 Go sort.Search 的单调谓词、空切片与 len(data) 尾部返回值,正确处理升序、降序、重复值和插入位置。114 收藏 -
Go encoding/base64 的 NewEncoder 会把不足一个完整分组的尾部数据暂存在内部,必须调用 Close 才能刷新到目标 Writer。本文用最小代码说明正确关闭顺序、StdEncoding 与 RawStdEncoding 的 padding 边界,以及 io.Copy、文件资源和错误处理的组合方式。114 收藏 -
Go 项目开启 vendor 后,不能只看目录是否存在。本文用 go env、go list -f 和 vendor/modules.txt 确认实际依赖目录,并解释构建命令与 go mod 命令的取源边界。113 收藏