Go教程技术文章
-
用 Go x/text/message SetString 登记不同语言的消息,再交给 Printer 按语言读取。本文从消息键、默认 catalog、语言标签和原文回退四个边界讲清写法,并整理全局登记与请求读取的工程取舍。221 收藏 -
Go fuzz 测试里的种子参数不是从 *testing.F 再取一次,而是由 f.Fuzz 回调的参数直接接收。本文用 string、[]byte 和 int64 示例说明 f.Add、回调签名、默认 go test、持续 fuzz、失败输入复现与 testdata/fuzz 的选择边界。221 收藏 -
Go 1.27 为 crypto/x509 增加 ML-DSA 证书密钥支持。本文用 PEM 证书读取示例说明如何区分证书、公钥算法、ML-DSA 参数集与证书签名算法,并解释什么时候应使用 ParsePKIXPublicKey。220 收藏 -
Go unicode/utf16.AppendRune 接收一个 rune,把它的 UTF-16 编码追加到已有的 []uint16 切片并返回扩展后的切片。本文说明如何接回返回值、处理不同码点以及理解非法码点的 U+FFFD 替换。220 收藏 -
在 Go 批处理循环中复用 bytes.Buffer:用 Reset 清空长度、用 Grow 预留稳定容量,并处理 Bytes 别名与异常大容量,避免旧内容残留和不必要的分配。220 收藏 -
Go 打包 ZIP 时可通过 FileInfoHeader 或 SetMode 写入模式,再用 CreateHeader 创建条目。本文用普通脚本分发示例说明名称、压缩方式、归档关闭和 Mode 读取,并区分权限记录与目标环境恢复。219 收藏 -
Go 1.26 放开了泛型类型在参数列表中的自引用约束。本文用 Adder[A Adder[A]] 和 Score 小项目说明如何表达同类型输入输出、判断方法签名边界,并区分类型约束递归与递归数据结构。219 收藏 -
Go regexp.QuoteMeta 会转义普通文本中的正则元字符,让用户关键词按字面参与匹配。本文说明如何只转义动态片段、保留固定规则,并区分模式转义与替换模板边界。219 收藏 -
介绍 Gonum stat.Histogram 的边界、排序和权重约定,提供不修改原始切片的 Go 计数示例,说明右端点、归一化及计数切片复用语义。219 收藏 -
处理代理地址、连接地址或地址键时,IPv4 与 IPv4-mapped IPv6 可能代表同一主机。本文用 net/netip.Addr.Unmap 说明如何识别映射地址、统一表示,并避开 Is4、BitLen 和 As4 的边界误用。219 收藏 -
用 httptest.NewTLSServer 覆盖 Go HTTP 测试中的证书校验失败与成功分支,解释 server.Client、x509.UnknownAuthorityError、响应体关闭和自定义 Transport 的边界。219 收藏 -
用 Go 1.25+ 的 sync.WaitGroup.Go 收口并发任务启动、等待和错误回收,并说明 panic、Wait 顺序与旧版本兼容边界。219 收藏 -
Go HTTP 处理器切换到原始连接时,应先检查 Hijacker 能力,再接收 net.Conn 与 bufio.ReadWriter,并明确接管后的期限、缓冲、Request.Body 和关闭责任。218 收藏 -
Go unicode.ToLower 接收单个 rune 并按 Unicode 大小写映射返回 rune。本文说明它对非字母字符的行为、range 遍历字符串的正确写法,以及如何用 []rune 或 strings.Builder 组装转换结果。218 收藏 -
用 iter.Pull 把 Go 的 iter.Seq 转成 next/stop 拉取式接口,说明按需读取、正常结束、提前停止、Pull2 和并发调用的边界。217 收藏