Go教程技术文章
-
Go crypto/ecdh 的 ECDH 调用要求本地私钥与远端公钥使用同一曲线。本文从跨服务故障现场出发,说明 P256 与 P384 为什么不能混用,如何用 Curve() 定位问题,以及如何把曲线约定前移到协议边界。322 收藏 -
Go 1.24 为 encoding/json 增加 omitzero。本文用 time.Time、自定义 IsZero、指针和切片示例,拆清它与 omitempty 的判断边界,并给出兼容迁移和测试清单。321 收藏 -
并发任务一旦失败,普通取消信号往往只告诉调用方“停了”,却丢掉了真正原因。本文用 context.WithCancelCause 组织一个批量读取示例,让首个失败原因沿 ctx.Done 传回协调函数,并验证取消、错误回收和结果输出的边界。321 收藏 -
用 Go 的 container/list 和 map 实现固定容量 LRU 缓存,覆盖命中更新、覆盖旧值、超限淘汰、容量边界和并发使用注意事项。321 收藏 -
Go generate 的关键不是把命令写得更长,而是把指令放进正确的源码包,让相对路径、生成器和输出文件拥有稳定的目录关系。321 收藏 -
Golang · Go教程 | 1个月前 | 配置 · go · TLS · 网络安全 · TLS 1.3 Go crypto/tls最低TLS版本 tls.Config.MinVersion TLS 1.2 Go TLS配置 ConnectionState Version
围绕 Go crypto/tls 的 tls.Config.MinVersion,说明 TLS 1.2 与 TLS 1.3 的最低版本选择、客户端 Transport 和服务端连接绑定方式,以及用 ConnectionState 核对协商结果的迁移边界。321 收藏 -
Go bbolt 按前缀扫描键时,先用 Cursor.Seek 定位,再用 bytes.HasPrefix 控制边界,并处理 bucket 缺失、子桶项和事务内字节切片生命周期。321 收藏 -
Go pprof 定位 CPU 热点函数的关键,是先采集能代表真实负载的 CPU profile,再用 go tool pprof 对比 flat、cum、list 和调用关系,最后回到源码行复采确认。321 收藏 -
Golang · Go教程 | 1星期前 | 标准库 · 错误处理 · IO · Go教程 · Go eof io.Pipe CloseWithError PipeReader PipeWriter.Close
Go io.Pipe 写端正常 Close 后,读端读完剩余数据会收到 io.EOF;如果生产过程失败,应使用 CloseWithError 传播真实错误。本文对比三种关闭入口,给出带错误处理的读取循环和关闭边界。321 收藏 -
slices.BinarySearchFunc 查不到值时,最先要检查的不是二分算法,而是比较函数是否按 func(E, T) int 返回“切片元素相对目标”的结果,以及切片是否按同一规则有序。本文用结构化切片说明方向、边界和插入位置。321 收藏 -
Go ascii85.NewEncoder 没有单独的 Flush 方法,Close 才负责写出内部暂存的尾部不完整块。本文说明 4 字节分块、Write 与 Close 的边界、错误处理和生产导出排障方式。321 收藏 -
Go 1.27 为 tls.QUICConfig 增加 ClientHelloInfoConn,用于指定 ClientHelloInfo.Conn 暴露的 net.Conn。本文从 QUIC 证书选择和配置回调场景讲清赋值位置、可读取的连接元数据、禁止读写的边界与兼容做法。320 收藏 -
讲清 Go time.ParseInLocation 在夏令时重复本地时间中的边界:固定 IANA 时区,保存 Zone、offset、IsDST、原始文本和 UTC 瞬间,避免把两次出现的本地时间误当成同一条记录。320 收藏 -
Go context发生取消时,ctx.Err()只能告诉你状态,context.Cause(ctx)才能保留首次取消的具体原因。本文用WithCancelCause和超时cause建立一套可排查的错误归因方法。320 收藏 -
Go 标准库 archive/tar 能读取 GNU/PAX 稀疏归档,但 Writer 当前不支持编码稀疏文件,因此不存在一组 Header 字段能直接开启稀疏写入。本文解释 Size、Typeflag、Format、PAXRecords 的边界,并给出普通条目和 GNU tar --sparse 两种可靠方案。320 收藏