Go教程技术文章
-
Go 1.26 支持用 new(表达式) 创建带初始值的指针。以重试配置为例,讲清语言版本、默认类型、nil 与零值,以及 new(变量) 和取地址的区别。338 收藏 -
Go bytes.Buffer 复用时要先 Reset,清空当前未读内容并保留底层存储。本文用一个批量摘要小示例说明旧内容残留、Len 与 Cap、Bytes 切片生命周期和并发边界。338 收藏 -
Go 标准库的一次性初始化函数适合把昂贵且只需执行一次的结果封装成并发安全调用。本文从配置加载和失败传播两个场景入手,演示最小写法、panic 语义、Go 版本边界和测试方法。337 收藏 -
Go slog 统一记录请求 ID 和业务字段的实战方法:用 context 传递请求范围数据,用 Logger.With 和 WithGroup 分层复用稳定字段,并通过 InfoContext、LogAttrs 保持日志可检索且不串请求。337 收藏 -
io.MultiWriter 按顺序把同一份数据写入多个目标;中间目标失败时不会回滚或继续写。本文说明如何判断部分写入、记录失败目标并设计幂等补偿。337 收藏 -
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教程 | 4星期前 | 网络编程 · 标准库 · 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 收藏 -
Go 需要把一个切片模式重复多次时,可以使用 slices.Repeat。本文说明它如何计算结果长度、如何处理 count 边界,以及它与 make、Clone 的区别。337 收藏 -
介绍 Go slices.IndexFunc 的泛型函数签名、条件谓词写法、首个匹配索引返回规则,以及空切片、重复匹配和未找到时的 -1 处理方式。337 收藏 -
使用 Go jsonschema/v5 处理内存中的多份 JSON Schema 时,关键是用同一个 Compiler 以不带 fragment 的资源名注册主 Schema 和被 $ref 引用的 Schema,再从根资源 Compile。本文给出最小写法、路径匹配规则、动态内容变体和常见错误边界。337 收藏 -
Go encoding/xml 默认按严格 XML 解析。本文用 xml.Decoder 的 Strict、AutoClose、HTMLAutoClose 和 HTMLEntity 处理缺少结束标签的 HTML 风格片段,并说明适用边界。337 收藏 -
用 Go encoding/hex.EncodedLen 计算十六进制输出的精确长度,配合 Encode 复用目标切片,并比较 AppendEncode 与流式编码在不同缓冲区场景下的选择。337 收藏 -
Go debug/dwarf.Reader 按条目读取 DWARF 调试信息。本文说明怎样用 Next 判断条目边界,用 Tag 筛选目标,并在不需要子树时调用 SkipChildren 跳过无关内容。337 收藏