Go教程技术文章
-
用 Go fuzzing 为解析函数补齐边界输入:从 f.Add 种子、限定 fuzz 时长,到把失败语料固化为可重复的回归测试。168 收藏 -
Go 的 encoding/xml 遇到带嵌套标签的混合文本时,直接映射结构体容易忽略空白。本文用 Token、CharData、XMLName 和命名空间字段完成可控读取。168 收藏 -
Windows 下 filepath.Match 会把反斜杠当作路径分隔符,而不是转义符。本文用可运行示例说明本地路径、glob 规则和统一斜线路径该如何分工。168 收藏 -
用 sha256.New 配合 io.Copy 流式读取大文件,计算 SHA-256 摘要并处理字节数、读取错误与自定义缓冲区。168 收藏 -
Go module graph pruning 不是简单删除 go.mod 条目。本文从 go 1.17+ 的模块图规则出发,说明如何用 go mod graph、go mod why -m 和 go list -m all 定位仍被下载的依赖。168 收藏 -
使用 filepath.WalkDir 遍历目录时,权限错误不一定要让整棵目录树停止。本文说明如何区分目录与文件错误,正确使用 filepath.SkipDir,并保留非预期错误。167 收藏 -
用 Go embed.FS 把静态资源编译进二进制,再通过 fs.Sub、http.FS、StripPrefix 和 FileServer 对齐嵌入根目录与 URL 前缀,解决部署漏文件和静态路径 404。167 收藏 -
Go iter.Pull 将推送式迭代器转换为 next/stop 拉取接口。本文用惰性生产者说明如何用 defer stop 覆盖提前退出、自然结束和异常路径,并梳理 ok 判断、零值与并发调用边界。167 收藏 -
Go 的 math/bits 不会自动改变变量类型,但可以测出数值需要的有效位数,帮助你在 uint8、uint16、uint32 和 uint64 之间安全选择并检查溢出边界。166 收藏 -
Go 1.22 引入的 slices.Concat 能按顺序合并多个切片。本文从空输入、容量增长和底层数组别名三个边界出发,给出可验证的使用方式和选择建议。165 收藏 -
Go 单元测试中不要让 http.Client 访问真实网络,可以注入自定义 RoundTripper,返回可控响应并断言请求方法、URL、请求头和错误边界。165 收藏 -
Go 的 iter.Pull2 把 Seq2 转成 next/stop 拉取接口。本文用一个可复用示例说明提前 break 时为什么必须调用 stop,以及 defer stop()、ok 判断和并发边界怎么处理。165 收藏 -
用 Go net/http Flusher 发送增量响应时,先判断 ResponseWriter 能力,再处理请求取消、写入错误和代理缓冲,避免把 Flush 当成端到端实时保证。165 收藏 -
用 Go strings.FieldsSeq 处理日志标签和空白分词,说明 iter.Seq[string] 如何被 for range 消费、空输入如何结束,以及何时仍应使用 strings.Fields 返回切片。164 收藏 -
Go 的 HTTP/1 服务端默认会在写响应前消费未读请求体。本文用分块上传与流式响应示例说明 ResponseController.EnableFullDuplex 的作用、Flush 的边界、HTTP/2 差异和关闭请求体的验收方法。164 收藏