Go语言技术文章
-
用Gonum stat计算带权均值、样本方差和总体方差,结合频数示例说明输入约束、分母差异与权重归一化的影响。368 收藏 -
Go fitsio 的 File.Close 只释放 FITS 层资源,不会关闭底层 io.Reader 或 io.Writer。本文拆开 os.File、fitsio.File 与 Rows 的责任,给出读取和创建 FITS 文件时的安全关闭写法。368 收藏 -
Go 1.23 的 maps.All 会把 map 转成 iter.Seq2,让 range 同时接收键和值。本文用对比场景说明最小写法、提前终止、无序语义、自定义 map 类型和选型边界。368 收藏 -
Go PNG 解码失败可用 errors.As 区分 FormatError 与 UnsupportedError,并保留 EOF、读取及压缩数据错误。本文给出错误链处理示例,说明值类型匹配、%w 包装与 DecodeConfig 的范围。368 收藏 -
Go bufio.Scanner 的空结果可能来自空输入、空行、空白词、超长 token 或自定义分割规则。本文用最小实验区分 Scan、Text 和 Err 的边界,并给出 Buffer 与排查清单。368 收藏 -
Go 客户端启用 ECH 时,EncryptedClientHelloConfigList 必须是真实的序列化配置,并满足 TLS 1.3 约束;服务端拒绝则应按 ECHRejectionError 的 RetryConfigList 处理,不能把失败简单降级成普通 TLS。368 收藏 -
Go 源码分析工具处理内存 []byte 时,需要先为 token.File 注册同样的文件大小,再用 SetLinesForContent 建立行首字节偏移表。本文说明 Position、Lines、换行、UTF-8、//line 注释与 SetLines 的边界。368 收藏 -
Go 1.24 新增的 regexp.Regexp.AppendText 可以把已编译正则追加到已有 []byte。本文用一个带前缀缓冲区示例说明返回值、错误处理、与 String 的关系及 POSIX/Longest 的输出边界。368 收藏 -
Go huh 动态选项未刷新时,应区分静态 Options、OptionsFunc 闭包和 bindings。通过区域与队列联动示例说明变量地址绑定、缓存、旧选择失配及空状态处理。367 收藏 -
Go go-cmp 比较 nil 切片与非 nil 空切片时默认保留状态差异。本文用最小项目说明 EquateEmpty 的使用方式、Equal 与 Diff 的统一配置,以及不应全局忽略空值差异的业务边界。367 收藏 -
Go crypto/tls 用 tls.Config.NextProtos 声明客户端的 ALPN 协议偏好,并在握手完成后从 ConnectionState.NegotiatedProtocol 读取最终结果。本文说明成功协商、未协商与无共同协议的处理边界。367 收藏 -
说明 go mod edit -fmt 如何只整理 go.mod 的文本格式,区分 -print、-json、go get 与 go mod tidy 的职责,避免把排版命令当成依赖维护命令。367 收藏 -
Go regexp 的 LiteralPrefix 会返回任何匹配必须以其开头的字面量前缀,以及该前缀是否已经覆盖整个正则。本文用几个模式说明如何读取这两个返回值、做候选预筛选,并避开把前缀误当成完整匹配的常见误区。367 收藏 -
Go x/text/secure/precis OpaqueString 可以在保留大小写的前提下准备国际化口令文本。本文说明 String 的使用、NFC 规范化、空结果处理,以及准备后再哈希的落地顺序。367 收藏 -
Go 程序在本地、容器和精简系统中出现时区差异时,不要直接依赖 time.Local。本文用 time.LoadLocation、ZONEINFO、time/tzdata 和启动自检建立一套可排查的部署处理方案。367 收藏