Go语言技术文章
-
通过命名切片调用泛型过滤函数后类型退化的问题,讲清 S ~[]E 的含义、类型推断、返回 S 的实现方式,以及 nil、底层数组共享和元素类型变化时的设计边界。387 收藏 -
Go 的 maps.Insert 可以把 iter.Seq2 键值流写入目标 map。本文从 maps.All、slices.All 和自定义生成器三个来源说明合并写法,并梳理重复键覆盖、惰性执行、空流与遍历顺序边界。387 收藏 -
sync.OnceFunc 会把固定关闭回调与一次性状态封装成同一个可并发调用的函数,首次调用完成前其余调用者会等待。本文给出共享资源关闭写法,并比较 Once、原子标记、OnceValue 与单所有者方案的适用边界。387 收藏 -
Go maphash.Seed 只属于单个进程,不能序列化或跨进程重建。本文解释它与 Hash、Sum64 的关系,并给出保存稳定摘要、重启后重建内存分桶的 Go 实现方案。385 收藏 -
Go 对字符串执行 for range 时,如果遇到非法 UTF-8,第二个迭代值会是 U+FFFD(utf8.RuneError),下一轮只前进一个字节。本文解释字节索引、连续非法序列、合法 U+FFFD 的歧义,以及 ValidString 和 DecodeRuneInString 的正确用法。385 收藏 -
reflect.Value.Comparable 会按动态类型判断值能否安全比较。本文讲清它与 IsValid、CanInterface、Interface、Equal 的正确组合顺序。384 收藏 -
Golang · Go问答 | 5天前 | go · TLS · 网络安全 · VerifyConnection Go InsecureSkipVerify x509.Verify TLS证书校验 证书固定
Go 中 InsecureSkipVerify=true 会跳过默认的证书链和主机名校验。若业务必须接管验证,应在 VerifyConnection 中用自定义 RootCAs、中间证书池和 DNSName 调用 x509.Verify,并可追加 SPKI 指纹约束。384 收藏 -
用最小配方修复 iter.Seq2[T,error] 的错误返回链,覆盖数据源、转换适配器、消费端与 Pull2 的常见吞错位置。383 收藏 -
Go 堆快照要同时查看 inuse_space 与 alloc_space。本文用相近负载下的多次采样、GC 对齐和 pprof 差异报告,区分高频短命分配、稳定常驻集与持续增长的长期持有。382 收藏 -
读取 pkg.go.dev 包文档索引要组合两个 v1 端点:package 端点通过 doc=md 返回文档正文,symbols 端点返回结构化符号;还需处理 nextPageToken、module 歧义和版本固定。381 收藏 -
Go 1.24 的 testing.T.Context 会在 Cleanup 回调执行前取消。本文用后台 worker 示例说明如何传递测试上下文、等待 goroutine 退出,以及父子测试、超时和清理阶段的生命周期边界。380 收藏 -
用 C.CBytes、C.GoBytes 和 C.free 划清 Go 与 C 的字节缓冲区所有权,避免异步保存 Go 指针造成悬空引用。379 收藏 -
Go HTTP客户端的超时并不等于连接立即释放。本文从总时限、阶段超时、响应体关闭和连接池排队四个角度定位连接长期占用,并给出可直接迁移的配置与检查清单。378 收藏 -
Go net/http 生产服务应显式配置请求头、响应写出和空闲连接超时,并把 ListenAndServe、信号监听、Shutdown 与 Close 组织成有边界的退出流程,避免慢连接拖垮服务或重启时直接丢失在途请求。378 收藏 -
Go 1.27 的 jsontext.Value 可保存一个原始 JSON 值,但直接转换、Clone、IsValid、MarshalJSON 与 Encoder.WriteValue 的职责不同。本文从切片复用导致内容变化的现象出发,给出安全保存、结构体透传和再次编码方案。378 收藏