Go语言技术文章
-
Go Flock 的锁文件是协作路径,不是占用状态本身。本文区分磁盘文件、内核锁和 Flock 实例,说明 Unlock、Locked、TryLock、Stat 的用途,以及异常退出和跨平台场景下的判断边界。403 收藏 -
Go Validator 的 omitempty 会先判断字段是否为空,空值会直接跳过 min、gte 等后续规则。本文用最小结构体说明字符串、数字、指针和集合的边界,并比较 omitnil 与 omitzero 的选择。403 收藏 -
Go runtime/metrics 的 Float64Histogram 需要先检查 Value.Kind,再用相邻 Buckets 边界解释 Counts 分桶。本文给出安全读取、区间配对、总量汇总和累计指标判断方法。403 收藏 -
本文把 os.OpenRoot 的目录边界、manifest 的有序文件名切片和 slices.BinarySearch 的命中判断组合起来,演示如何在受限根目录内定位并读取文件,同时处理未命中、越界路径和资源释放。403 收藏 -
sync.Map.CompareAndSwap 返回 false 不会指出改写者,也不提供失败时的旧值。通过可比较结构体携带版本、写入者与操作标识,并区分后续 Load 观察、键删除及类型差异,避免错误归因。403 收藏 -
Go database/sql 的 Null[T] 用 Valid 表示当前值是否为 NULL,V 只在 Valid=true 时作为业务值读取。本文按现象、证据和修复动作说明 Scan、Value、有效零值与类型转换错误的边界。403 收藏 -
围绕 Go filepath.Rel 解释绝对路径、相对路径和 Windows 不同卷的错误边界,给出用 IsAbs、VolumeName 和 Rel 组合处理跨平台相对路径的实用写法。403 收藏 -
atomic.Uint64 与普通 uint64 可以在同一项目中共存,但同一个共享值不能混用原子读写和直接读写。本文说明类型边界、数据竞争、32 位对齐和首次使用后不可复制的处理方式。403 收藏 -
Go crypto/tls 用 CurveID 表示密钥交换组,CurvePreferences 决定显式支持范围。本文说明传统组、X25519 与混合后量子组的配置边界,并给出握手结果检查清单。402 收藏 -
Golang · Go教程 | 3星期前 | 并发 · go · 连接池 · net/http · HTTP客户端 · Go HTTP客户端 连接池 http.Transport Transport.Clone
Go 的 http.Transport.Clone 可以深拷贝导出配置字段,适合从一份基础 Transport 派生出连接池参数互不覆盖的客户端。本文区分配置快照、函数回调与运行时连接池,并给出可复用的隔离写法。402 收藏 -
Go runtime/trace 通过 NewTask 返回的 context 关联各阶段 WithRegion。原创示例说明跨 goroutine 传递、等待子任务、采集命令及墙钟区间与 CPU 时间的阅读边界。402 收藏 -
Go 里可以用带缓冲 channel 做轻量 semaphore,把令牌容量当作 goroutine 并发上限,再用 defer 归还令牌避免提前返回造成泄漏。本文从批量任务小项目出发,整理阻塞获取、可取消获取和 WaitGroup 收尾的写法。402 收藏 -
Go slog 通过 HandlerOptions 的 AddSource 把日志调用位置加入 TextHandler 或 JSONHandler 输出,本文说明 source 的生成、包装影响与生产取舍。402 收藏 -
Go jsontext 的 ReadToken 返回值可能依赖 Decoder 内部缓冲区,后续读取会让原始 token 失去长期有效性。本文说明 Token.Clone 的迁移边界与回归检查方法。402 收藏 -
Go TLS 握手出现证书主机名不匹配时,重点核对实际校验主机名、SNI 和证书 SAN;本文给出诊断命令、Go 配置示例以及域名和 IP 场景的修复边界。402 收藏