Go语言技术文章
-
Go 的 StdEncoding 会接受部分尾部填充位不规范的 Base64 输入。本文用 Zh== 对比 Zg==,说明 base64.Strict 的拒绝边界、错误处理方式和兼容取舍。149 收藏 -
解释 Go time.AfterFunc 的回调与 Timer.Stop 同时发生时如何判断返回值,并用 done 或 WaitGroup 协调回调完成与资源清理。148 收藏 -
Go io.Pipe 的写端提前失败时,普通 Close 会让读端只看到 EOF。本文按读写两端的职责解释 CloseWithError、n 与 err 的处理方式,以及关闭顺序和 ErrClosedPipe 的边界。148 收藏 -
go mod graph 用模块 requirement 边展示依赖来源,go list -m all 用来观察最终构建列表。本文按排查顺序说明如何定位上游、理解版本差异,并处理 replace、exclude 与 Go 版本语义。148 收藏 -
Go 的 unicode.IsSpace 按 Unicode White Space 属性判断 rune。本文用配置文本说明它与 ASCII 空格、strings.Fields、strings.TrimFunc 的区别,以及清理键值行时的边界。148 收藏 -
Go Transport 请求后连接池立即变空,通常不是连接池失效,而是连接仍在使用、响应体未读完或关闭、Keep-Alive 被禁用、空闲超时过短,或者 Transport 被重复创建。本文按状态、代码和配置边界给出排查顺序。148 收藏 -
Go imports.Process 可为源码片段整理和补全导入。本文给出 Fragment 模式的声明片段处理函数,说明 FormatOnly、filename 位置语境,以及失败时保留原文的方式。148 收藏 -
Go os.OpenFile 的 perm 是创建文件时的请求权限,最终结果还会受到系统 umask 影响;已有文件则不会因为再次传入 perm 自动改权限。本文用创建、覆盖和显式 Chmod 三个场景说明正确写法。148 收藏 -
Golang · Go教程 | 1星期前 | 网络编程 · 标准库 · HTTP · Go教程 · Go 响应头 net/http http.Header Header.Get Header.Values
Go 的 http.Header 底层是 map[string][]string。需要读取同名响应头的全部值时使用 Header.Values,只关心首个值才使用 Header.Get,并注意缺失值、大小写与返回切片的边界。148 收藏 -
Go 的 crypto/rand.Read 与普通 io.Reader 不同,它会通过 io.ReadFull 填满整个目标切片。本文解释短读取契约的差异、正确生成随机字节的写法,以及自定义 Reader 时应该如何处理 n 和 error。148 收藏 -
Go os/exec.Cmd.ExtraFiles 可以把父进程已打开的文件交给子进程。本文用一个父子进程示例说明 ExtraFiles[0] 如何对应文件描述符 3、启动前后的关闭边界,以及 Windows 不适用时该怎么判断。148 收藏 -
Go 交叉编译时设置 CGO_ENABLED=0 后缺少实现,通常不是链接器突然丢了函数,而是带 import C 的文件被 cgo 构建约束排除。本文说明如何定位、补 !cgo 回退,或为目标平台准备 C 交叉工具链。148 收藏 -
os.DirFS 的根目录参数不能是空字符串,文件读取还要区分非法路径、文件不存在和权限错误。本文用 io/fs 的路径约束、errors.Is 和资源关闭写出清晰的异常分支,并提醒 DirFS 不等于符号链接隔离。148 收藏 -
Go 常量文档工具输出复数值时,String 适合短日志,ExactString 才适合精确文档。本文说明如何组装复数、拆分实部虚部并处理 Float64Val 的精度标志。148 收藏 -
Go net/url 解析以问号结尾但没有参数的 URL 时,要用 ForceQuery 保留空查询标记;RawQuery 只表示查询内容,不能单独区分缺少问号和空查询。147 收藏