Go教程技术文章
-
用 sync.Once、完成通道和 AfterFunc 的 stop 函数组合,解决取消回调与主动关闭并发时的重复清理、提前返回和竞态问题。367 收藏 -
本文说明 Go ed25519.Options 如何启用 Ed25519ph,重点讲清 SHA-512 摘要输入、Hash 与 Context 的配置,以及 PrivateKey.Sign 和 VerifyWithOptions 的互操作边界。367 收藏 -
用一个最小 Go 项目演示如何通过 //go:embed 把模板编译进 embed.FS,再用 ReadFile 读取、template.Parse 解析并执行,补充路径规则、错误处理、ParseFS 取舍与测试方法。367 收藏 -
用 Go archive/tar 把文件元数据写入 Header,再以流式方式复制内容,覆盖归档路径、目录、符号链接、大小一致性和 Close 收尾等关键边界。366 收藏 -
Go 的 big.ParseFloat 通过 prec 控制二进制有效位数,通过 RoundingMode 决定舍入方向。本文用可复用代码说明参数选择、Accuracy 判断和展示精度之间的边界。363 收藏 -
本文用 map[string]*list.Element 与 container/list 实现最近使用顺序:命中时 MoveToFront,新增时 PushFront,超容量时从 Back 淘汰,并说明节点归属、重复节点和并发安全等容易踩坑的边界。361 收藏 -
Go 页面共享布局时,先解析公共模板,再在首次执行前 Clone;每个副本解析自己的同名 content 定义,最后缓存并执行 layout,即可隔离首页、后台等页面变体。361 收藏 -
Go 迭代器提前停止时,push 模式应在迭代器内部 defer 关闭资源并在 yield 返回 false 后立即 return;iter.Pull 模式则要在取得 next、stop 后立刻 defer stop。本文给出错误边界、包装器写法和可验证的测试清单。359 收藏 -
用 go/scanner 扫描 Go 源码时,ErrorCount 需要在完整 Scan 到 EOF 后读取;配合 ErrorHandler 可同时拿到错误位置和消息,不能只数 token.ILLEGAL。355 收藏 -
Go gob.RegisterName 可以为接口值中的具体类型指定稳定线上名称。本文用生产者与消费者小项目演示共享名称常量、本地类型注册、接口编码、重复注册 panic 以及结构体字段兼容升级边界。352 收藏 -
用固定 worker、带容量的 jobs channel、可取消提交和 WaitGroup 收尾,把 Go 中每条输入都启动 goroutine 的无界并发改造成可解释的工作池。350 收藏 -
Go 1.26 的 //go:fix inline 可让库作者把旧 API 的兼容包装函数转成自动迁移规则。本文用改名与参数重排示例说明声明方式、go fix -diff 预览、批量执行和回归检查。347 收藏 -
os.Root 把受信任目录封装成文件访问边界:Root 方法可跟随仍位于根内的符号链接,但任何路径组件一旦解析到根目录之外就返回错误。本文给出安全打开模式、反例、平台限制和补丁版本提醒。347 收藏 -
Go JSON API 客户端重试不能只靠循环。本文用 net/http、context 和 JSON 字节重建请求,划分网络错误、429/5xx、4xx 与副作用请求的边界,并限制尝试次数、总超时和退避时间。345 收藏 -
讲清 Go pem.Decode 的 block/rest 返回关系,给出连续读取多个 PEM 区块的循环、nil 退出边界和按 Type 分流解析的方法。344 收藏