Go教程技术文章
-
Gonum 的 YenKShortestPaths 适合在非负权图中取得多条不含环的候选路径。本文从带权有向图构造、k 与 cost 参数、路径读取和边界处理几个方面说明如何使用。397 收藏 -
slices.DeleteFunc 会把匹配元素移除,但含指针的切片还要关注尾部槽位是否被清零。本文从 Go 版本行为、底层数组引用和 GC 验收三个角度给出可运行示例,说明什么时候需要关注内存保留以及如何用 cap、runtime.MemStats 和测试确认结果。396 收藏 -
用 Go sync.OnceValue 封装一次性初始化函数,理解并发调用、返回值缓存、panic 复现以及与 OnceValues、sync.Once 的选择边界。396 收藏 -
用 Go 的 bytes.Buffer 拼接多段二进制数据时,可以预留容量、连续 Write,并在结果消费或复制后 Reset 复用。本文重点说明 Bytes 的别名生命周期和安全边界。396 收藏 -
Go math/big.Int.QuoRem 对负数采用向零截断的 T-除法。本文用 x=y*q+r 验算商和余数,并对比 DivMod 的非负余数语义,补充大整数对象复用和除零处理要点。396 收藏 -
解析 Go context.WithoutCancel 保留值却切断取消、截止时间和 Cause 的精确语义,并给出独立超时、工作队列与服务关闭边界的实践方案。396 收藏 -
io.NewOffsetWriter 把 WriterAt 映射成带基准偏移的写入器,但 Seek 不支持 io.SeekEnd。本文拆解失败原因、相对坐标与文件末尾定位的可执行写法。396 收藏 -
Go log/slog 的 GroupValue 可以把多个 Attr 组成一个 Group,再配合 slog.Group 形成 request、user、deployment 等嵌套字段。本文说明空组消除、切片不可变和不同 Handler 输出时的组织方式。396 收藏 -
用一个配置快照场景说明 Go slices.Clone 如何切断切片与底层数组的共享关系,比较直接赋值、append 和 Clone 的边界,并用竞态检测验证并发读取写入的安全做法。395 收藏 -
Go 1.25 新增的 http.CrossOriginProtection 可以在 net/http 层拒绝非安全跨源浏览器请求。本文用 Handler 接入、请求头判断和放行边界说明如何落地。395 收藏 -
讲清 Go os/exec 中 Cmd.Dir、cmd.Environ 和 Env 的配置顺序,并用独立缓冲区保存 stdout、stderr,区分启动失败与 ExitError。395 收藏 -
用 Go container/heap 实现可改期、可取消的定时任务优先队列,说明堆接口、位置索引与延迟删除,给出完整示例及接入调度器的注意事项。395 收藏 -
Go 的 slices.Compare 会从索引 0 开始逐个比较两个切片,首个不相等元素决定结果;如果共同前缀完全相同,则短切片更小。本文说明返回值、长度边界、元素约束和 CompareFunc 的选择。395 收藏 -
Go 1.25 让 Linux 容器中的默认 GOMAXPROCS 感知 cgroup CPU 配额,并提供 runtime.SetDefaultGOMAXPROCS 重新启用默认值。本文从升级风险、代码改动和验收证据三方面给出迁移清单。394 收藏 -
Go 处理大文件时不要先读入完整 []byte。本文用 base64.NewEncoder 和 io.Copy 流式转换,说明 encoder.Close 的必要性,并比较标准、URL 安全和无填充 Base64 的适用场景。394 收藏