Go语言技术文章
-
Go 的 time.Time.AppendFormat 会把格式化结果直接追加到已有 []byte 并返回扩展后的切片。本文用日志字段示例说明返回值、容量复用、Format 对比以及布局和时区的使用边界。459 收藏 -
说明 Go time.Time 的 Round 与 Truncate 如何按固定周期取整并保留 Location,结合固定偏移示例区分绝对网格、本地整点、日历一天及单调时钟注意点。215 收藏 -
用 Go regexp.FindAllIndex 获取每次匹配的半开字节区间,理解 n 参数、中文 UTF-8 下标,以及整体匹配和捕获组索引的区别。326 收藏 -
Go regexp 默认采用左优先匹配;如果同一起点有多个候选并希望优先拿到更长结果,可以在共享使用前调用 Regexp.Longest。本文用最小示例对比默认模式、Longest 与 CompilePOSIX 的边界。233 收藏 -
Go 的 strings.FieldsFunc 适合按自定义 rune 规则切分文本。本文用字段导入场景说明它如何处理连续分隔符、首尾分隔符、Unicode 字符与空字段,并给出与 Split、FieldsFuncSeq 的选择边界。362 收藏 -
使用 Go strings.CutSuffix 精确移除末尾一份可选后缀,保留中间内容,并区分 found、空后缀、重复后缀、大小写与旧版本兼容写法。165 收藏 -
用 strings.CutPrefix 一次完成可选前缀的判断与去除,讲清命中、未命中、空前缀和旧写法迁移时的返回值,附可直接改造的 Go 示例。490 收藏 -
Go 中需要把 []byte 交给异步任务、缓存或跨层接口时,bytes.Clone 可以复制有效数据并隔离底层数组。本文比较旧写法与新写法,并说明 nil、空切片、容量和回归测试的边界。407 收藏 -
bytes.Buffer 的可用空间要看 Available,而不是只看 Cap。本文结合 Len、Cap、Available 和 Grow,说明如何估算当前缓冲区的剩余容量,以及读取、复用和扩容时的实际边界。474 收藏 -
用 io.LimitReader、max+1 探测和 http.MaxBytesReader 为 Go ReadAll 设置输入大小上限,区分截断、超限和读取错误。412 收藏 -
用 ReadFull 和 LimitedReader 读取固定长度协议载荷,区分读取上限、读满判断与提前 EOF,说明流式写入错误、缓冲Reader和后续帧边界。261 收藏 -
Go 的 io.MultiWriter 可以把一次 Write 同步转发给多个 io.Writer。本文说明它的调用顺序、错误和短写传播方式,并给出把输出同时写入文件与内存缓冲区的实用写法。181 收藏 -
Go 的 io.TeeReader 可以在读取输入流的同时,把已经读到的字节同步写入另一个 io.Writer。本文用 bytes.Buffer 和 io.Copy 说明它的调用关系、无缓冲特性、错误传播方式,以及只复制实际消费数据时的边界。175 收藏 -
Go 自定义类型实现 encoding.TextMarshaler 与 encoding.TextUnmarshaler 后,可以在文本编码边界复用同一套格式约定。本文用一个可读的标识类型说明方法签名、错误处理、JSON 发现规则和兼容测试。167 收藏 -
Golang · Go教程 | 7小时前 | JSON · bytes.Buffer · Go教程 · encoding/json · Go encoding/json bytes.Buffer json.Compact JSON压缩 JSON空白
Go 的 json.Compact 可以去掉 JSON 结构中的无意义空白,同时保留字符串内容。本文用 bytes.Buffer 组织压缩结果,说明合法输入、非法 JSON、错误处理和 Compact、Marshal、Indent 的用途边界。200 收藏