Go教程技术文章
-
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 收藏 -
Go 的 encoding/csv 开启 ReuseRecord 后,保存记录应复制返回的 []string 外层切片,而不是逐个重建字符串。本文说明复用边界、异步投递时机、ReadAll 差异和可直接采用的代码写法。394 收藏 -
flag.TextVar 可以把命令行文本直接交给自定义类型的 UnmarshalText。本文以 LogLevel 为例,说明接口分工、默认值写法、错误处理,以及如何把同一解析规则复用于 JSON 配置。394 收藏 -
pkg.go.dev 的正式 JSON API 可把 Go 包导入路径解析为 modulePath,再分页读取该模块的版本集合。本文给出 curl 与 Go 标准库实现,并说明路径歧义、跨主版本、伪版本、撤回标记、分页令牌和限流的处理方法。394 收藏 -
Go csv.Writer 的 Write 返回 nil 不代表整份 CSV 已完成输出。本文给出 Write、Flush、Error 的最小写法、WriteAll 变体和失败目标示例,说明成功判断的时机与底层目标边界。394 收藏 -
go list -json 可以直接给出 Go 包的 EmbedPatterns、EmbedFiles 以及测试嵌入字段。本文按普通包、内部测试包和外部测试包拆解查询方式,并说明如何把结果交给检查脚本。394 收藏 -
用 Go slices.Replace 替换切片的半开区间,掌握替换元素数量变化时的长度计算、底层数组复用和越界边界。394 收藏 -
Go mod why 展示的是从主模块到目标包的最短包级引入路径。本文结合实际排查依赖的经历,说明普通查询、-m、-vendor 与 go mod graph 的区别,以及出现未引用提示时怎样判断。394 收藏 -
Go 的 norm.Properties(...).BoundaryBefore() 用来判断当前 rune 是否开启新的规范化片段。本文从单点判断讲到 NextBoundaryInString,说明如何在 UTF-8 分块输入中找到不会切断组合标记的安全位置。394 收藏 -
Go slices.EqualFunc 用自定义 eq 函数按索引比较两个切片,长度不同直接返回 false,比较器首次返回 false 时停止。本文结合跨类型字段比较,说明比较器签名、空切片边界和副作用控制。394 收藏