Go教程技术文章
-
围绕 Go crypto/rand 生成安全令牌,说明随机预算、URL 安全编码、存储轮换边界与指标验证方法。145 收藏 -
Go 的 os.CreateTemp 通过 pattern 控制临时文件名前缀;加入星号还能指定随机段位置并保留扩展名。本文说明目录选择、清理责任与不同创建方案的适用边界。144 收藏 -
Go 1.23 引入的 iter.Seq 让 slices.Chunk 可以惰性提供批次,slices.Collect 再把序列接收为可索引切片。本文说明空序列、尾批次和 slices.Clone 的数据所有权边界。144 收藏 -
Go 1.22 起可以直接用 zip.Writer.AddFS 把 fs.FS 目录树写入 ZIP。本文说明 os.DirFS、fs.Sub、路径前缀、非普通文件和 Writer.Close 的关键边界。143 收藏 -
Go 的 os.ReadDir 默认按文件名返回目录项;如果业务还要按修改时间排序,应先读取 DirEntry.Info,再用稳定排序保留文件名作为平局规则。本文给出可直接改造的实现和错误处理边界。143 收藏 -
Go 为 exec.Cmd 设置工作目录后,应先赋值 Cmd.Dir,再调用 Cmd.Environ 并写回 Cmd.Env。本文解释正确顺序、重复环境变量覆盖规则,以及 PWD、os.Getwd、getcwd 在符号链接路径下的差异。142 收藏 -
讲清 Go encoding/xml 对缺失元素、空元素和有值元素的映射差异,并用指针字段、TextUnmarshaler 与 UnmarshalXML 保留协议中的可选状态。142 收藏 -
maps.Clone 会创建独立的顶层 map,但只做浅拷贝。本文用配置快照示例说明字符串、结构体、切片、嵌套 map 与指针字段的边界,并给出测试和深拷贝方案。141 收藏 -
Go 的 ResolveReference 能按 RFC 3986 正确组合相对地址,但它也会接受绝对 URL 和网络路径引用。本文给出同源校验、目录边界限制与表驱动测试写法。141 收藏 -
encoding/json/v2 默认忽略未知 JSON 成员,严格接口可用 RejectUnknownMembers 定位错误,需要透传时可用 embed fallback 保留扩展字段。本文按旧客户端、新客户端、严格命令和网关转发四类场景给出兼容策略与回归清单。141 收藏 -
多个 Go 生产者共享 channel 时,由唯一协调者等待全部发送者退出后关闭输出。本文给出原创实现、固定负载基准入口,以及正常计数和取消收尾的观测边界。141 收藏 -
讲清 Go embed.FS 中 go:embed 匹配路径、fs.Sub 新根目录与 template.ParseFS 模式的对应关系,并给出避免重复目录和同名模板冲突的写法。140 收藏 -
Go 泛型函数把类型参数放进 map[K]V 时,应使用 K comparable 表达键的比较边界。本文用可复用查找函数说明字符串、整数和结构体键的适用范围,并区分 comparable 与排序、加法、业务方法约束。140 收藏 -
net.Dialer.ControlContext 会在套接字创建后、真正拨号前提供受保护的 RawConn。本文给出 Linux 下设置 SO_SNDBUF 与 TCP_USER_TIMEOUT 的完整写法,并讲清双层错误、网络类型和跨平台边界。139 收藏 -
讲清 Go slices.Delete 的区间边界、尾部引用清理、DeleteFunc、Clip 与 Clone 的差异,帮助在原地删除与释放过大底层数组之间做出合适选择。138 收藏