Go语言技术文章
-
Gonum interp 中的 FritschButland 与 NaturalCubic 都是分段三次插值,但前者优先保证局部单调并只做到 C¹,后者保证 C² 连续并采用自然边界。本文用同一组 Go API 说明两者的选型、输入限制和区间外边界。266 收藏 -
gofpdf 的内部跳转不是给 PDF 拼接 URL,而是先用 AddLink 创建文档内链接标识,再用 SetLink 绑定目标页和位置,最后通过 WriteLinkID 或 CellFormat 把目录文字变成可点击入口。本文还说明它与 Bookmark 的区别以及跨页生成时的组织方式。266 收藏 -
Go KSUID的完整二进制为20字节,区别于27字符Base62文本。本文给出固定记录保存与恢复函数,说明SQL默认值接口、短写、截断记录和旧数据迁移回退的处理方式。266 收藏 -
Go structs.HostLayout 用于标记结构体采用主机内存布局,通常遵循主机 C ABI。本文说明标记位置、unsafe 布局检查方法,以及嵌套结构体、packed struct、位域和 cgo 互操作的边界。266 收藏 -
Go bufio.Reader 读取长记录时,使用 ReadBytes 处理单字节分隔符与 EOF 尾部数据;需要业务长度上限时,用 ReadSlice 分片复制并在追加前限制累计字节数。266 收藏 -
用 runtime/trace.NewTask 把跨 goroutine 的一次逻辑操作关联到同一个 Context,说明 Region、Log、Task.End 与 trace 文件收集的配合方式。266 收藏 -
解释 runtime/metrics 中空切片、KindBad、合法零值和空直方图的区别,并给出复用 metrics.Sample 切片的批处理写法。266 收藏 -
Go Fuzz 的种子语料可以分成代码里的 f.Add 样本和 testdata/fuzz/FuzzTestName 目录语料。本文用一个可迁移的 FuzzDecode 示例说明两种来源怎样配合、目录文件怎样命名、参数类型怎样对齐,以及失败样本如何沉淀为回归用例。265 收藏 -
Go map 的 range 顺序没有稳定保证。本文用收集键、排序键、按键取值的方式实现可重复输出,并补充整数键、按值排序、JSON 序列化和测试快照的边界。265 收藏 -
Go 1.24 之后,tls.Config.CurvePreferences 显式设置会覆盖默认密钥交换集合。本文说明如何重新启用 X25519MLKEM768,并处理 TLS 版本、客户端服务端重叠和传统回退。265 收藏 -
Go 1.22+ 的 ServeMux 会在注册阶段检查 pattern 是否存在无法排序的重叠;本文用请求集合解释冲突原因,并给出消除重复匹配的排查清单。265 收藏 -
Pond v2 默认队列近似无限,使用 WithQueueSize 设置等待容量,再用 TrySubmitErr 或 WithNonBlocking(true) 在容量用尽时拒绝超额任务;文章还说明运行数、排队数与收尾方式的区别。265 收藏 -
Go bytes.CutPrefix 返回去掉前缀后的字节切片和 found 标记,适合判断输入是否以指定前缀开头。本文用原创示例说明匹配成功、前缀缺失、空前缀和底层切片复用边界,并把后续业务校验独立出来。265 收藏 -
介绍 Go 标准库 maps.Clone 如何复制配置 map、隔离标量值修改,以及处理 slice 等嵌套 value 时的浅拷贝边界。265 收藏 -
Go time.AfterFunc 返回的 Timer 可以用 Stop 取消尚未启动的回调。本文按 Stop 的 true、false 两种结果说明取消窗口与竞态边界,并给出需要等待回调结束时的显式同步写法。264 收藏