-
Go NATS 请求可以直接传入 time.Duration,也可以使用带 deadline 的 context.WithTimeout 调用 RequestWithContext。本文用一个请求响应场景说明两种写法、错误分支与上下文清理边界。
-
使用 Gonum interp 的可导数插值器拟合递增采样数据,在同一个插值位置分别调用 Predict 和 PredictDerivative 取得函数值与一阶导数,并说明拟合契约、区间外查询和算法选择边界。
-
本文用二维服务点示例说明 Go rtreego 的最近邻查询:让对象实现 Spatial.Bounds,创建二维 R-tree 后用 NearestNeighbor 查找单个最近对象,用 NearestNeighbors 获取前 k 个候选,并处理空树、维度一致性和对象移动后的重插入边界。
-
Go 1.25 的 net/http.CrossOriginProtection 可在业务处理器前拒绝非安全的跨站浏览器请求。本文说明判断规则、Handler 接入方式、可信 Origin 配置与兼容边界,并给出适合 Cookie 会话表单写接口的完整示例。
-
Go 迁移到 ML-KEM 时,不要把后量子算法简单替换或直接拼接共享秘密。本文以 crypto/mlkem 和传统 ECDH 为例,说明协商、上下文绑定、HKDF 派生与失败即拒绝的组合方式。
-
Go 的 encoding/csv 默认按逗号读取 CSV;遇到分号分隔文件,只需在第一次 Read 或 ReadAll 前设置 Reader.Comma = ';'。本文说明合法分隔符、配置时机、固定列数和错误处理边界。
-
Go 1.21 起,bytes.Buffer.AvailableBuffer 可以把当前可用容量交给一次短字段追加,再通过紧接的 Write 提交。本文说明它与普通 Write、strings.Builder 的选择边界,以及返回切片的生命周期。
-
Go work 用 go.work 把多个独立 Go module 放进同一 workspace,让本地联调可以直接读取模块改动。本文按迁移变更单的方式说明目录、use、模式切换、测试与交付边界。
-
Go 拼接 API 根地址和资源路径时,不要靠字符串加斜杠。url.JoinPath 会统一路径分隔符并清理 .、..;如果某个变量本身是一个含斜杠的数据段,再先用 url.PathEscape。
-
go tool trace 默认通过本地 HTTP 服务打开 trace viewer。本文解释 localhost:0、:6060、127.0.0.1:6060 和 0.0.0.0:6060 的差别,给出限制在本机回环接口的命令写法。
-
Go filepath.IsLocal 适合在拼接用户路径前筛出绝对路径、空路径和父目录路径。本文用原创 Go 示例说明它与 filepath.Clean、filepath.Join 的边界,并解释符号链接、存在性和权限问题为什么仍需额外处理。
-
Go generate 可以通过 package 路径、同目录 Go 文件列表以及 -run、-skip 精确缩小生成范围。本文结合注释触发、执行顺序和失败边界,说明如何只对指定包运行代码生成指令。
-
Go 的 archive/tar 读取截断归档时,正常结束与数据不完整不是同一个结果。本文用 Reader.Next、Header.Size、io.Copy 和 io.ErrUnexpectedEOF 说明如何定位截断位置,并在流式解包中安全停止。
-
Go slices.BinarySearchFunc可在自定义顺序中查找,前提是排序与查询比较语义一致。通过分数降序的结构体示例,说明整数目标、重复键、未命中插入位置和顺序维护。
-
Go unicode/utf8.RuneLen 返回单个 rune 编码成 UTF-8 所需的字节数:正常值为 1 到 4,非法 Unicode 值返回 -1。本文区分 RuneLen、len 和 RuneCountInString,并说明 RuneError 与非法 rune 的边界。