Go教程技术文章
-
用 strings.Builder 拼接大量片段时,按字节数估算 Grow 容量,按输入类型选择 WriteString、Write、WriteByte 或 WriteRune,并避开 []byte 到 string 的多余转换与非零 Builder 复制。355 收藏 -
Golang · Go教程 | 1个月前 | 命令行工具 · Go教程 · flag.NewFlagSet ContinueOnError Go flag.FlagSet Go 子命令 Go 命令行参数解析
用 Go flag.FlagSet 为 serve、export 等子命令隔离参数、帮助和错误输出,掌握 ContinueOnError、SetOutput、Args 与位置参数的组织边界。355 收藏 -
用 go/scanner 扫描 Go 源码时,ErrorCount 需要在完整 Scan 到 EOF 后读取;配合 ErrorHandler 可同时拿到错误位置和消息,不能只数 token.ILLEGAL。355 收藏 -
通过私有可比较键、只含值字段的Metadata快照和返回副本的读取接口,在Go context中传递只读请求标签,并区分缺失、子值遮蔽和共享引用风险。355 收藏 -
Go 的随机定位能力不是所有 Reader 都具备。本文用 io.Seeker 和 ReadSeeker 讲清接口断言、SeekStart/SeekCurrent/SeekEnd、返回偏移、越界与资源关闭边界,并给出不支持定位时的降级策略。355 收藏 -
通过完整 Go SFTP 上传函数说明同目录临时文件、写入和关闭错误处理、POSIX 重命名及覆盖策略,并区分名称交接、持久化和消费确认,处理响应中断后的不确定结果。355 收藏 -
用 go/types.NewMethodSet 遍历 Go 类型的方法集合,结合 Selection 的 Obj、Recv、Index 和 Indirect 字段识别嵌入类型提升的方法,并比较 T 与 *T 的方法边界。355 收藏 -
FindAllStringSubmatchIndex 返回的是整段匹配和每个捕获组的字节边界,未参与匹配的组用 -1 标记。本文用 Go 示例拆开索引数组的排列方式,并给出安全切片与 UTF-8 文本处理方法。354 收藏 -
Go regexp 通过命名捕获组提取日志字段,配合 SubexpIndex 集中处理索引、匹配失败、可选字段和重复命名,让日志格式调整不再牵动大量 match 数字位置。354 收藏 -
Go 的 net/url.URL.Redacted 只会把 URL.User 中的密码替换为 xxxxx。本文说明如何区分 Userinfo 与查询参数,把脱敏固定到日志出口,并处理解析失败、无密码和 token 参数等边界。354 收藏 -
本文用一个目录摘要工具串起 filepath.WalkDir 的输入边界、目录过滤、普通文件统计、遍历错误和大文件排序,帮助你把标准库 API 组合成可维护的 Go 命令行程序。354 收藏 -
介绍 Go scanner.ErrorList.RemoveMultiples 的排序和按行去重语义,说明如何保留完整原始诊断、生成一条一行的展示结果,以及无效位置和原地切片修改的边界。354 收藏 -
本文用 Go debug/macho 读取 Mach-O 的 Dysymtab.IndirectSyms,说明它与 Symtab.Syms 的索引关系,并给出处理缺少表、空表和越界索引的只读示例。354 收藏 -
runtime.KeepAlive 的作用不是阻止 GC,而是把对象的可达性延长到指定调用点。本文用外部资源句柄的最小例子说明终结器为什么可能过早运行、KeepAlive 应该放在哪里,以及如何用资源关闭状态验证调用顺序。353 收藏 -
讲清 Go atomic.Uint64 的 Add 与 Load 如何完成并发计数和单值统计快照,并说明多字段状态不能靠连续 Load 自动保持一致。353 收藏