Go教程技术文章
-
用 Gonum distuv.Normal 的 CDF 与 Survival 计算正态分布左尾、右尾和双侧尾部概率,解释 Mu、Sigma 与 z 分数的边界。230 收藏 -
用完整包路径、类型和方法定向查询 Go 文档,按需使用 -src 查看实现,并用 go list 查找本地源码目录,区分符号查询、展示选项与文件位置。230 收藏 -
Go encoding/asn1.Unmarshal 出错时,不要把 SyntaxError 和 StructuralError 混为一谈。本文用 errors.As 区分 DER 语法无效与接收结构不匹配,再从字段顺序、struct 标签、导出字段、指针参数和 rest 逐项定位。230 收藏 -
用 os.Root 把文件操作限制在指定目录内,再通过 Root.Link 的两个相对路径参数创建同一文件的硬链接,并梳理符号链接源文件、路径越界和 GOOS=js 的边界。229 收藏 -
Go compress/flate.Writer 没有可直接填写的公开字段,可选行为要通过 NewWriter、NewWriterDict 的参数以及 Write、Flush、Close、Reset 的生命周期来表达。本文区分压缩级别、预置字典、流式刷新和 Writer 复用的职责,并给出错误处理与配置封装示例。229 收藏 -
Go 用 crypto/sha512 计算文件 SHA-512 时,正确做法是让文件流写入 sha512.New 返回的哈希对象,再读取 Sum(nil)。本文解释空摘要、摘要长度不对、读取错误和重复复用对象导致结果异常的原因。229 收藏 -
Go 的 go/doc/comment.Parser 负责把文档注释解析成 Doc,但包名与当前包符号是否能成为 DocLink,需要 LookupPackage 和 LookupSym 提供上下文。本文用一个自包含示例说明两个回调的参数、返回值、默认行为和常见边界。229 收藏 -
用 go list -json 读取包目录、编译文件和被构建约束排除的文件,再结合 GOOS、GOARCH、-tags、Imports、Deps 与 DepOnly 分析 Go 包的导入边界和跨平台差异。229 收藏 -
Go io.Pipe 是没有内部缓冲的同步内存管道:PipeWriter.Write 会等到 PipeReader 消费数据后才完成。本文从生产者消费者串流出发,说明正常关闭、CloseWithError、读端取消与背压边界。228 收藏 -
Go big.Int.SetString 解析大整数时需明确进制并检查成功标志。本文说明十进制与自动进制的差异、失败时接收者状态,以及临时对象提交和独立副本的用法。228 收藏 -
用 sync.Cond 把空队列等待、生产者入队和消费者唤醒连起来,重点说明 Wait 必须放在条件循环中,以及 Signal、Broadcast 和退出处理的边界。228 收藏 -
Go collate.Key 可预生成语言排序键供重复比较使用。本文给出复制键后稳定排序的写法,解释 Buffer.Reset 有效期、配置一致性、缓存重建和内存取舍。228 收藏 -
用 Go select 同时等待两个输入 channel,讲清接收分支、value 与 ok 的关闭判断、两路输入汇总,以及 default 和阻塞等待的适用边界。228 收藏 -
说明 Go archive/tar.Writer 如何从 fs.FileInfo 生成 Header,保留文件模式与 ModTime,并在需要时用 FormatPAX 保存更细的时间信息。228 收藏 -
Go time.Time 不会保存解析错误,time.Parse 返回的 error 需要与时间值分开处理。本文用 (time.Time, error)、%w 和 errors.As 说明如何保留 ParseError、添加业务上下文,并区分零值、时区与序列化边界。228 收藏