Go语言技术文章
-
Go cmp.Compare 返回 -1、0、1 三种排序结果,适合直接表达字段比较;多字段排序时可用 cmp.Or 保留第一个非零结果,再交给 slices.SortFunc。本文用订单示例说明升序、降序与浮点边界。207 收藏 -
Go cmp.Or 可以按参数顺序返回第一个非零值,适合组织请求配置、环境变量和代码默认值的回退链,也能串起多字段排序比较。本文说明零值、comparable 约束与参数求值边界。110 收藏 -
Go 1.23 的 slices.Repeat 可以按次数生成连续切片结果,本文说明正数、零次、空输入、nil 语义、负数和大规模分配边界。476 收藏 -
介绍 Go slices.IndexFunc 的泛型函数签名、条件谓词写法、首个匹配索引返回规则,以及空切片、重复匹配和未找到时的 -1 处理方式。337 收藏 -
Go slices.Replace 可以把切片的半开区间替换成任意数量的新元素。本文用权限列表和批处理记录说明变长替换、空替换、索引边界、底层数组复用与结果判断,帮助你写出可复查的切片更新代码。368 收藏 -
Go 的 slices.Compare 会从索引 0 开始逐个比较两个切片,首个不相等元素决定结果;如果共同前缀完全相同,则短切片更小。本文说明返回值、长度边界、元素约束和 CompareFunc 的选择。395 收藏 -
介绍 Go unicode/utf8.AppendRune 的函数契约、已有 []byte 缓冲区追加方式、返回切片要求和非法 Rune 替换为 utf8.RuneError 的处理边界。347 收藏 -
Go strings.CutPrefix 返回 after 和 found 两个结果:前缀匹配时移除一个前缀,未匹配时保留原字符串并返回 false。本文用代码、表格和边界清单说明如何正确处理。103 收藏 -
Go strings.CutSuffix 用一个调用同时返回去掉固定后缀后的字符串和 found 状态,适合拆分文件扩展名。本文说明匹配、未匹配、空后缀和 Go 版本边界。410 收藏 -
Go bytes.FieldsFunc 接收一个 rune 判断函数,可把逗号、竖线、空白等混合字符当作分隔符,并返回不含空元素的字节子切片。本文说明自定义判断、UTF-8 语义、空结果和必要时的复制边界。397 收藏 -
用Go bytes.CutSuffix判断并移除一次固定字节后缀,区分空主体与未匹配,说明空后缀、重复标记和共享切片的处理方法,并给出返回独立副本的业务函数。177 收藏 -
Go bytes.Clone 适合在多个处理阶段需要独立修改 []byte 时隔离底层数组别名。本文从切片共享、nil 与空切片、长度容量以及浅层复制边界出发,给出可直接复用的工程写法。104 收藏 -
通过FileInfoHeader与SetMode保存Go ZIP文件头的权限信息,说明CreateHeader写入、归档关闭、目录模式和跨平台恢复的区别,并给出普通文件打包示例。315 收藏 -
Go compress/gzip 的 Name 与 Comment 属于 gzip 文件头元数据,需要在首次 Write、Flush 或 Close 之前设置。本文说明字段职责、编码限制、读取方式以及复用 Writer 时的重置顺序。144 收藏 -
Go compress/flate 的 Writer.Reset 可以在保留压缩级别和字典配置的前提下切换新的输出目标,适合批量处理多个独立数据块。本文说明 Close、Reset、错误处理和并发所有权的正确顺序。279 收藏