Go教程技术文章
-
用 Go regexp.Regexp 的 ExpandString 配合命名捕获组和 SubmatchIndex,把正则匹配结果按模板顺序展开到可复用的 dst 缓冲区,并说明变量边界、未匹配组与字面量美元符号的处理。387 收藏 -
Golang · Go教程 | 3星期前 | 网络编程 · 标准库 · go · Socket · SO_REUSEADDR Go net.ListenConfig Control RawConn socket选项
Go 的 net.ListenConfig 没有直接暴露所有 socket 选项时,可以使用 Control 回调在 socket 创建后、绑定前通过 RawConn 设置平台相关参数。本文以 Linux TCP 的 SO_REUSEADDR 为例,说明错误传递、tcp4/tcp6 和跨平台边界。387 收藏 -
Go math/rand/v2.ChaCha8 使用固定的 [32]byte 种子即可复现伪随机序列。本文说明 NewChaCha8、Seed、Uint64、Read 的配合方式,并区分测试回放与 crypto/rand 的安全用途。387 收藏 -
解释 Go go:generate 的固定执行目录规则,区分包内相对路径与仓库根目录参数,并给出 -root 方案让多包代码生成不依赖调用者当前目录。387 收藏 -
围绕 Go crypto/mlkem 的 EncapsulationKey、DecapsulationKey、Encapsulate 和 Decapsulate,说明公钥封装与私钥解封装的角色边界、返回值和版本注意事项。387 收藏 -
Go io.ReadFull 会尽力读满固定长度的缓冲区。本文区分完整读取、起始 EOF 和半帧 ErrUnexpectedEOF,并给出定长消息封装写法。387 收藏 -
讲清 Go slices.Chunk 的尾组长度、空输入、非法 n、容量裁剪和底层数组别名,给出适合批量消费的判断方法。387 收藏 -
Go errors.Join 适合把多个可选字段的校验错误合并成一个可检查的错误树。本文用请求补丁示例说明 nil、errors.Is、errors.As、输出顺序和不适用场景。387 收藏 -
用 Go 的 net/netip 判断地址是否属于指定网段:先解析 Addr 和 Prefix,再调用 Prefix.Contains,同时处理解析错误、IPv4/IPv6 匹配与非规范 CIDR 边界。387 收藏 -
Go 的 database/sql 使用 QueryRow 查询单行时,真正的错误要到 Scan 才返回。本文说明如何用 errors.Is 判断 sql.ErrNoRows,并区分空结果、字段 NULL、查询失败和多行结果等边界。386 收藏 -
Go encoding/csv Reader.ReuseRecord 可以让流式读取复用记录切片,减少短生命周期分配。本文解释默认行为、只读当前行的低分配写法,以及保存记录时为什么必须复制切片。386 收藏 -
Go 的 norm.NFD 会把预组装字符转换为基础字符与组合附加符。本文从 String、AppendString、Bytes 讲到 Reader、Transform 和边界处理,说明如何拆分组合字符,以及为什么它不等于去重音或按用户感知字符分割。386 收藏 -
Go archive/zip 将 ZIP 条目的扩展字段放在 FileHeader.Extra 中。本文用安全的 TLV 遍历读取原始字节,处理未知字段、截断输入、重复字段与条目遍历边界。385 收藏 -
Go泛型可用类型集和底层类型项限制数值参数。通过整数、实数约束与业务计数白名单示例,说明自定义类型接纳、同一类型参数及溢出精度边界。385 收藏 -
Go cmp.Or 从多个同类型候选值中返回第一个非零值,适合组织请求值、环境值和默认值的回退链,也能组合多级排序比较结果。本文说明其用法、零值边界与验证方式。385 收藏