Go教程技术文章
-
通过包装 tls.ClientSessionCache 记录 Get、Put 与命中,再用 ConnectionState.DidResume 区分缓存命中、TCP 连接复用和真正的 TLS 会话恢复。463 收藏 -
围绕 Go maphash.Hash 的内部缓冲、Reset、String/Bytes 和 sync.Pool,说明如何按输入形态复用哈希状态并定位真正的堆分配来源。463 收藏 -
Write 返回成功不代表数据已经到达稳定存储。本文用 Go os.File.Sync 拆开写入、同步、关闭和文件替换的边界,给出可复用的错误处理写法。463 收藏 -
Golang · Go教程 | 3星期前 | 接口 · 标准库 · go · Go AppendBinary encoding.BinaryAppender BinaryMarshaler 二进制编码
Go encoding.BinaryAppender 的 AppendBinary 接收已有字节切片并返回追加后的结果。本文说明如何保护已有前缀、避免保存调用方缓冲区,并让 BinaryMarshaler 与追加编码保持同一语义。463 收藏 -
本文围绕 golang.org/x/tools/go/analysis 的 Pass.Reportf,说明怎样从 AST 节点或原始文件行号取得 token.Pos,并提交带源码位置的静态分析诊断。463 收藏 -
Go go-wav通过ReadInfo解析格式信息,再从Format读取采样率与声道、从SampleBitDepth读取位深。本文提供原创函数,说明错误检查、编码标识、文件关闭及格式声明与完整解码的区别。463 收藏 -
Go bufio.Scanner读取长行时需在首次Scan前配置Buffer,并独立限制业务字节数。本文结合完整示例说明空结果、Err检查、Bytes生命周期和文件关闭的处理方法。463 收藏 -
Go 的 gzip.Reader 默认会合并读取连续 gzip 成员;需要保留成员边界时,应关闭 Multistream,读到 io.EOF 后保存当前 Header,再通过 Reset 读取下一个成员。本文同时说明校验错误、底层 io.ByteReader 和资源关闭责任。463 收藏 -
依赖升级后版本仍不如预期,通常不是 go get 失效,而是 MVS 按完整模块图计算了 build list。本文用三组 Go 命令定位谁抬高了版本,并处理 replace、exclude 与工作区边界。462 收藏 -
sync.Pool 适合复用可丢弃的临时缓冲区,而不是业务状态或必须长期保留的资源。本文用 bytes.Buffer 和 []byte 说明 Reset、归还时机、异常容量清理与收益判断。462 收藏 -
Go 1.26 重写 go fix,以 modernizer 和 Go analysis 框架批量改写受支持的旧式标准库与语言用法。本文给出 fixer 盘点、-diff 预览、分批落盘、多平台覆盖和测试审查清单,并说明它不会自动迁移所有废弃 API。462 收藏 -
Golang · Go教程 | 1个月前 | 标准库 · 配置管理 · 并发编程 · go语言 · 工程实践 · Go并发 延迟加载 配置快照 sync.OnceValue sync.OnceValues
sync.OnceValue 适合把只加载一次的固定配置封装成并发安全的延迟函数。本文给出值语义快照写法,并说明引用类型、错误缓存、panic 重放、日志和热更新边界。462 收藏 -
Go filepath.IsLocal 只判断路径的词法局部性,不保证符号链接、文件存在或访问权限安全。本文说明原始输入校验、Clean 与 Join 的使用顺序及业务边界。462 收藏 -
Go bytes.SplitSeq 返回 iter.Seq[[]byte],适合按分隔符逐段消费并在满足条件后提前停止。本文说明它与 bytes.Split 的差异、空分隔符和字节片段生命周期边界。462 收藏 -
Go crypto/ecdh.PrivateKey.Equal 用于判断两个私钥对象是否代表同一把 ECDH 私钥。本文说明同一曲线、类型匹配、常量时间比较和 Bytes 编码之间的边界。462 收藏