Go教程技术文章
-
Go 的 FileMode 同时包含文件类型、普通权限和特殊权限。本文说明如何只替换权限位,正确构造 File.Chmod 入参,并处理 Unix 与 Windows 的语义差异。338 收藏 -
Go atomic.Value 的关键不是可以存任意类型,而是同一个 Value 的 Store、Load、Swap 与 CompareAndSwap 必须围绕同一具体类型工作。本文用配置快照示例说明初始化、更新、nil、类型别名和复制规则。337 收藏 -
用 Go archive/tar.Reader.Next 顺序遍历 tar 归档,区分 EOF、文件类型与读取边界,并给出受控提取的实现要点。337 收藏 -
runtime/secret.Do 可以让 Go 在机密计算返回前清除相关寄存器与栈,并在堆对象变得不可达后交给垃圾回收器处理。本文用最小示例说明实验开关、平台限制、全局变量、panic 和 Goexit 等使用边界。337 收藏 -
Golang · Go教程 | 2天前 | 网络编程 · 标准库 · ip地址 · Go教程 · Go netip.Addr ParsePrefix CIDR net/netip netip.Prefix ParseAddr
Go net/netip 中,单个 IP 地址应使用 Addr,带斜杠的 CIDR 网段应使用 Prefix。本文从输入分流开始,说明 ParseAddr、ParsePrefix、Masked、Contains 以及 Addr.Prefix 和 PrefixFrom 的区别。337 收藏 -
用 filepath.Rel 计算相对目录深度,在 filepath.WalkDir 回调中通过 filepath.SkipDir 截断超出层级的目录子树,并说明错误处理、符号链接和跨平台路径边界。336 收藏 -
从 HTTP Handler 取出请求上下文,沿数据库查询和下游 HTTP 调用继续传递截止时间,说明 QueryContext、NewRequestWithContext、错误判断与资源清理的边界。336 收藏 -
Go bufio.Reader 在成功 ReadRune 后可用 UnreadRune 回退一个码点。本文以数字串试探解析为例,说明同一 Reader、Peek 失效、重复回退、EOF 与非法 UTF-8 的处理边界。336 收藏 -
用 Koanf 先加载文件配置,再用带前缀的环境变量覆盖指定键。本文说明 env/v2 的键名转换、加载顺序、类型覆盖、结构体解码和严格合并边界。335 收藏 -
Go cgo 不会替 C 堆自动回收内存。本文从 C.CString、C.CBytes 和 C 侧返回指针入手,建立分配与释放成对出现的责任边界,并说明 Go 指针不能被 C 长期持有的规则。335 收藏 -
Go HTTP 请求遇到需要保留正文的重定向时,关键是区分 Body、GetBody 和 ContentLength。本文说明 NewRequest 对常见 reader 的处理,并给出自定义请求体的安全重放写法。334 收藏 -
用一个小型键值配置格式说明 Go Participle 的结构体标签、递归字段、重复项和错误边界,帮助调用方把有限语法稳定映射成 Go 结构体。334 收藏 -
Go 的 bufio.Scanner 默认token缓冲并不适合所有日志行。本文说明如何在首次Scan前用Buffer设置最大字节数,识别ErrTooLong,并在超出业务上限时切换bufio.Reader。333 收藏 -
以带计时器资源的 iter.Seq2 为例,说明 Pull2 的 next、stop、生产者 defer 和提前退出如何配合,给出可迁移的资源释放模板。333 收藏 -
Go reflect.VisibleFields 会按 FieldByName 的可见性处理嵌入字段:浅层同名字段覆盖深层字段,同层同名字段互相抵消。本文用结构体示例说明冲突判断、StructField.Index 读取路径和 nil 嵌入指针边界。332 收藏