Go教程技术文章
-
Go time.Duration.Round 会把时间间隔舍入到指定粒度的最近倍数,刚好过半时远离零点,非正粒度则原样返回。本文用紧凑示例说明它与 Truncate 的区别、字符串和毫秒输入的统一处理,以及定时器参数的边界。466 收藏 -
encoding/gob 解码到已有 map 时不会先清空目标,传入数据会覆盖同名键,未出现在流中的旧键仍然保留。本文说明合并语义、nil map 的初始化方式,以及需要替换数据时如何避免旧状态残留。466 收藏 -
Go unique.Handle 可直接进行相等比较。本文给出批次匹配和三组基准示例,区分字符串内容比较、句柄复用与转换成本,说明分配收益如何判断。466 收藏 -
用 Go 标准库 net/mail.ParseAddressList 解析多个收件人,分别读取 Name 与 Address,并用数量、字段和错误三个指标判断地址列表是否可继续进入业务流程。465 收藏 -
Golang · Go教程 | 2星期前 | goroutine · pprof · Go教程 · 运行时 · Go pprof 性能诊断 goroutine profile pprof.Lookup
Go 里可以通过 pprof.Lookup("goroutine") 获取运行时内置的 goroutine profile,再用 WriteTo 将它写入 bytes.Buffer 或文件。本文说明 debug=1 文本、debug=0 协议缓冲区和 debug=2 堆栈格式的区别,并给出错误处理与复用封装。465 收藏 -
Go errors.As 可以沿着 errors.Join 形成的错误树查找目标类型,并把首个匹配值写入目标指针。本文用可执行的类型化错误示例说明组合错误的遍历顺序、未命中处理和参数边界。465 收藏 -
Go Kong 的命令树来自 Go 结构体和标签:普通字段是 flag,带 cmd 标签的嵌套结构体才是子命令。本文从嵌套字段未生效的症状出发,给出二级命令、参数归属和 Run 方法的最小写法。465 收藏 -
用 go-imap v2 的 UIDSearch 配合 SearchCriteria.Since 按日期筛选邮件,理解日期边界、UID 返回值和后续 Fetch 的衔接方式。465 收藏 -
Go fs.WalkDir 会在读取目录前先调用 WalkDirFunc。本文用最小可用代码说明如何返回 fs.SkipDir 跳过当前目录、用 fs.SkipAll 停止剩余遍历,并处理 err、根目录和普通错误边界。464 收藏 -
Go HMAC 验签应先统一签名编码,再比较原始 MAC 字节。本文说明 hmac.Equal 与 subtle.ConstantTimeCompare 的区别、长度处理和安全的请求校验流程。464 收藏 -
使用 Go net/url 修改查询参数时,直接操作 URL.Query 和 RawQuery,避免重建路径导致 %2F 等编码边界发生变化。本文从最小写法、字段分工、重复参数和完整示例说明可靠做法。464 收藏 -
Go bytes.Buffer.WriteTo 会把缓冲区的未读内容写入 io.Writer,并返回已经写出的字节数和错误。本文用最小示例说明完整写入、短写入、错误保留和发布前检查,帮助你避免重复发送或误判成功。464 收藏 -
Go 1.25 的 net/http 提供 CrossOriginProtection,可以在 Handler 层拒绝非安全的跨源浏览器请求。本文从保护范围、可信 Origin、拒绝处理器和认证边界四个方面给出一套可落地的写接口接入方式。464 收藏 -
本文用 Go 标准库 debug/plan9obj 读取自有 Plan 9 a.out 文件的符号表,讲清 Symbols 返回的 Sym 字段、Open 与 Close 的调用顺序,以及 ErrNoSymbols 与普通读取错误的区别。464 收藏 -
Go fitsio 向 FITS 表写入一条结构化记录时,先用带 fits 标签的结构体确定列布局,再用 NewTableFrom 建表、Table.Write 写当前行、File.Write 提交 HDU。本文还说明新建文件与原地修改的边界,以及失败时如何保留可回退的输出。464 收藏