Go教程技术文章
-
介绍Go strconv.Quote生成可复制字符串字面量的写法,通过特殊字符与Unquote示例区分值和展示层,补充ASCII输出、缓冲追加及目标语法边界。263 收藏 -
Go 调用外部程序时,使用 Cmd.Stdout 和 Cmd.Stderr 可分别接收标准输出与标准错误;大输出或实时日志则用两条管道并行读取,并在读取完成后调用 Wait。262 收藏 -
讲清 Go testing.T.Context 与 Cleanup 的取消时序,演示后台 goroutine 如何通过 done 和 errCh 退出,并在 Cleanup 中安全完成并发断言。262 收藏 -
Go gzip.Writer 的 Name、ModTime、Comment 等字段会写入 gzip 文件头,但必须在第一次 Write、Flush 或 Close 之前设置。本文给出最小写法,并说明复用 Writer、读回元数据和字段边界。262 收藏 -
用 go test -cover 建立按包基线,再用 coverprofile 与 go tool cover 定位函数盲区,并区分默认包内统计和 -coverpkg 跨包统计。262 收藏 -
Go 使用 slices.Delete 原地删除切片区间,并在 Go 1.22 及以后清空废弃尾部的元素引用。本文说明半开区间、返回长度、别名共享、批量删除和需要保留输入时的复制边界。262 收藏 -
Go errors.Join 遍历需同时识别两种 Unwrap 接口,区分包装节点与叶原因;示例加入调用、深度额度,并说明截断记录和不可信方法边界。262 收藏 -
Go 使用 utf8.RuneCountInString 统计 rune,而 len 返回字节数。本文通过中文、emoji 和组合字符说明差异,提供带字节上限、UTF-8 判断及 rune 上限的入口处理示例。262 收藏 -
Go strconv.CanBackquote 用于判断字符串能否原样放入单行反引号字符串。本文解释它会拒绝哪些字符,并给出失败时回退到 strconv.Quote 的实用写法。262 收藏 -
Go go mod edit 一次只处理一个 go.mod 文件。本文用 find 和循环批量修改模块路径,并说明 -print、-json、源码 import、replace 与 v2 主版本后缀的边界。262 收藏 -
使用 go-i18n TemplateData 向消息模板传入命名字段,对比 map 与结构体,解释 PluralCount 的独立职责、缺键处理和网页输出转义。262 收藏 -
用 Go uniseg 的 Graphemes.LineBreak 判断每个 grapheme cluster 后面是禁止、可选还是必须换行,并说明何时应改用 FirstLineSegmentInString。262 收藏 -
使用 go/types 分析泛型约束时,Term.Type() 不包含 ~ 语义。本文说明如何通过 Tilde() 与 Type() 成对读取,并用 NewTerm 正确复制联合约束中的近似类型项。262 收藏 -
解释 filepath.ToSlash 如何把本地路径分隔符转换成斜杠,区分 Windows 与 Unix 行为,并给出 URL、归档条目和字符串比较中的使用边界。262 收藏 -
Go 1.27 为 testing/synctest 增加 Sleep,把时间休眠与同步等待放到同一个测试语义里。本文拆开 Sleep、Wait、协作组和虚拟时间的边界,帮助你判断测试为何仍会卡住或提前通过。261 收藏