Go语言技术文章
-
Go 标准库 uuid.NewV4 可以生成版本 4 UUID,再按下游类型选择 String、MarshalText 或 AppendText 转成文本。本文用一个最小请求 ID 项目说明三种出口、错误边界和接入检查点。380 收藏 -
讲清 Go crypto/mldsa NewPrivateKey 如何使用严格长度的种子恢复可复现私钥,并说明参数集、错误处理和生产保管边界。181 收藏 -
Go jsontext.Decoder 可以把 JSON 当作 token 流读取,不必先反序列化成 Go 对象。本文从语法层和对象层的区别讲起,演示 ReadToken、PeekKind、ReadValue、输入偏移量和嵌套边界的使用,说明流式筛选时如何控制读取粒度与错误处理。342 收藏 -
Go encoding/json/v2 的 UnmarshalRead 面向单个顶层 JSON 值,不能直接当作多值流循环入口。本文用 jsontext.Decoder 与 UnmarshalDecode 逐个读取 Reader 中的 JSON 对象,并说明 io.EOF、数组封装和错误边界。457 收藏 -
Go reflect.Value.Equal 适合在反射代码中比较两个 Value:无效值彼此相等,接口值比较内部值,类型不同返回 false;同类型不可比较值会 panic。本文用最小示例说明这些边界和安全写法。145 收藏 -
Go slices.IsSortedFunc 接收自定义比较器,判断结构体切片是否按照指定的升序规则排列。本文用分数和名称的复合排序说明比较器约定,并梳理相等项、空切片、逆序项以及与旧 sort API 的边界。460 收藏 -
Go cmp.Or 从多个同类型候选值中返回第一个非零值,适合组织请求值、环境值和默认值的回退链,也能组合多级排序比较结果。本文说明其用法、零值边界与验证方式。385 收藏 -
Go 1.21 引入的 slices.IndexFunc 可以按自定义谓词查找切片中首个有效值。本文从手写循环迁移到标准库 API,说明谓词设计、首个命中、空切片和 -1 结果的判断边界。362 收藏 -
Go slices.CompactFunc 接收自定义相等函数,把连续且满足业务规则的重复项压缩为一项。本文从 Go 1.21 的迁移范围出发,说明比较规则、原地修改、尾部清零、nil 切片和非相邻重复的边界。270 收藏 -
Go strings.IndexRune 返回的是 Unicode 字符在 UTF-8 字符串中的首个字节偏移,而不是字符序号。本文说明 -1、0、utf8.RuneError 和非法 UTF-8 的边界,并给出安全切片与删除多字节字符的写法。142 收藏 -
Go bytes.IndexByte 接收一个字节切片和单个 byte,返回该字节第一次出现的索引;没有匹配时返回 -1。本文结合分隔记录、索引 0、空数据和 UTF-8 多字节字符说明正确用法。497 收藏 -
Go bytes.Count 用一个整数返回字节子切片的不重叠出现次数。本文说明最小写法、重叠匹配、空分隔片的 UTF-8 码点语义,以及如何区分返回 0 与参数错误。122 收藏 -
用一个小型 Go 工具说明 bytes.CutSuffix 如何处理固定后缀、如何判断 found,以及空后缀、未匹配和底层切片共享的边界。415 收藏 -
Go bytes.CutPrefix 用 after 和 found 同时表达去掉固定前缀后的切片与是否命中。本文说明未命中、空前缀、底层数组共享及旧版本兼容边界。405 收藏 -
Go 1.25 起可以用 os.Root.Chtimes 在受限目录树内更新文件的访问时间和修改时间。本文说明两个时间参数、零值保留、精度、权限与平台边界。276 收藏