Go语言技术文章
-
用 Go 标准库 netip.Prefix.AppendTo 把 IPv4 与 IPv6 网段写入既有字节缓冲区,验证前缀长度、零值和容量边界,避免不必要的字符串分配。479 收藏 -
用 Go 标准库 crypto/ecdh 完成一次可验收的密钥交换,说明公钥 Bytes 序列化、NewPublicKey 恢复、曲线匹配和共享密钥一致性检查。413 收藏 -
Go 1.22 起 ServeMux 支持方法和通配符,重叠路由按更具体的模式优先;只有双方都不更具体时才冲突并在注册时触发 panic。本文用真实模式拆解方法、路径、主机和注册顺序的边界。342 收藏 -
Golang · Go问答 | 1星期前 | 标准库 · 错误处理 · go · IO · 文件写入 · Go Seek WriteAt io.NewOffsetWriter OffsetWriter
io.NewOffsetWriter 可以把顺序写入映射到一个带起始偏移的区域,但它不会替底层 WriterAt 修复短写,也不会把 Seek 的定位语义变成并发安全。本文用可复现的内存示例拆开偏移、短写和错误传播边界。369 收藏 -
从一个可重复触发的 Go 定时任务出发,拆解 time.Ticker 的停止顺序、退出信号、重复 Stop 边界和可验收的收尾写法。364 收藏 -
Go 的 maps.Keys 可以把 map 的键序列交给调用方继续处理,但它不承诺键的顺序。本文用空 map、无序输出和 slices.Sort 三个边界说明如何安全地收集、排序并验收结果。132 收藏 -
从一个批量拼接日志的场景出发,验证 bytes.Buffer.Grow 预留容量何时有用、WriteString 如何触发扩容,以及 Reset 为什么只清空长度而不承诺释放底层空间。352 收藏 -
围绕分块文件生成场景,验证 Go os.File.WriteAt 的独立偏移语义、并发写入边界、短写处理和最终文件验收方法。326 收藏 -
解释 Go iter.Pull2 如何把 iter.Seq2 转成逐项拉取的 next 与 stop,重点验证提前停止时为什么必须调用 stop,以及双值序列结束后的边界行为。123 收藏 -
Go 的 slices.Collect 能把 iter.Seq 惰性序列一次收成切片。本文用分页数据和空输入例子说明 iter.Seq、slices.Collect、append 之间的关系,以及无法预估长度时的容量取舍。187 收藏 -
解释 encoding/csv.Reader.ReuseRecord 的切片复用语义,演示批量读取时如何降低分配,以及需要长期保存记录时如何避免数据被下一次 Read 覆盖。473 收藏 -
用一个最小 HTTP 服务演示 Go 的 http.NewResponseController 如何统一调用 Flush 和 Hijack,并核对包装器与 HTTP/2 不支持时的错误边界。334 收藏 -
用 Go strings.FieldsSeq 处理日志标签和空白分词,说明 iter.Seq[string] 如何被 for range 消费、空输入如何结束,以及何时仍应使用 strings.Fields 返回切片。164 收藏 -
用 Go log/slog 的 WithGroup 组织嵌套字段,解释 Handler 链路、同名键边界与 JSON 输出检查方法。341 收藏 -
Go regexp 的 FindAllString 适合一次拿到全部匹配,但重复匹配、空匹配和 n 参数经常让结果数量出乎意料。本文用可运行示例拆解扫描游标与边界,并给出限制匹配次数的可靠写法。147 收藏