Go教程技术文章
-
archive/zip.File.Open 返回的是需要关闭的 io.ReadCloser。本文区分整个 ZIP 阅读器与单个归档条目的资源边界,给出单文件读取、循环读取和错误路径下及时 Close 的写法。145 收藏 -
Go 的 encoding/json 默认会忽略结构体未声明的 JSON 字段。本文用 Decoder.DisallowUnknownFields 在请求边界拒绝拼写错误,说明 json 标签、嵌套结构、单文档尾部检查和可演进事件的取舍。144 收藏 -
Go compress/gzip 的 Name 与 Comment 属于 gzip 文件头元数据,需要在首次 Write、Flush 或 Close 之前设置。本文说明字段职责、编码限制、读取方式以及复用 Writer 时的重置顺序。144 收藏 -
Go gopacket可通过LayerTypeTCP查询已有数据包,再受检断言为TCP层。本文给出完整离线示例,区分非TCP、解码错误和有效字段,并说明解码起点与负载生命周期。144 收藏 -
介绍Go fs.WalkDir遍历embed.FS并读取正文的方法,通过完整示例说明子树路径、回调错误和SkipDir,分析资源内嵌的部署收益与更新边界。144 收藏 -
Go 里只想按首个分隔符拆成前后两段时,strings.Cut 用 found 明确表达是否找到;需要多个字段并保留最后一段时,strings.SplitN 通过 n 控制拆分次数。本文用重复分隔符、缺少分隔符和边界参数说明两者的选择。144 收藏 -
Go 的 sync.Cond 不负责保存通知,真正需要等待的是受锁保护的共享谓词。本文从丢失唤醒的症状出发,说明为什么必须用同一把锁配合 for 循环检查条件,并给出 Signal 与 Broadcast 的选择方法。143 收藏 -
Go 泛型切片返回值要隔离外层修改,应分配独立数组并 copy。通过 PrefixCopy 示例区分共享视图、容量限制与浅拷贝,说明命名类型、nil、引用元素及迁移检查边界。143 收藏 -
Go查询参数应通过url.Values保存原始值并编码,再写入RawQuery。本文结合搜索链接说明已有参数、Set与Add、空值和重复编码,并区分查询编码、HTML转义与目标地址信任。143 收藏 -
Go Testify 的 mock.InOrder 可以把多个 *mock.Call 组合成相对顺序约束。本文用准备、保存、审计的测试场景说明如何保留参数、调用次数与 AssertExpectations,并划清组外调用和并发流程不应强行绑定的边界。143 收藏 -
Go 读取大文件的固定偏移数据时,可以用 os.File.ReadAt 直接写入目标缓冲区,不必把整个文件载入内存。本文说明 offset、短读、EOF、范围检查以及可复用的固定窗口读取写法。143 收藏 -
Go parser.ParseFile 的 PackageClauseOnly 可以在只关心包名时提前停止解析。本文说明 FileSet、src、Mode 的职责,给出错误处理示例,并比较 PackageClauseOnly、ImportsOnly 与完整 AST 的适用边界。143 收藏 -
使用 Go mod graph 精确筛选目标模块的全部父依赖,并结合 go list -m 与 go mod why 区分版本要求、实际选中版本和包导入路径,说明依赖调整前后的记录方法与升级判断边界。142 收藏 -
使用 slices.IndexFunc 按谓词查找切片的首个匹配元素,重点说明索引返回值、未命中时的 -1,以及空切片的安全处理。142 收藏 -
Go filepath.Match遵循目标操作系统规则。本文通过反斜杠差异、单文件名筛选函数及预期用例,解释整串匹配、大小写和ErrBadPattern,并区分模式命中与跨平台文件名合法性。142 收藏