Go教程技术文章
-
Go 的 net/url.JoinPath 适合把基础 URL 与多个路径片段组合起来,并清理重复斜杠和相对片段。本文说明包级函数、URL.JoinPath、PathEscape、查询参数保留以及与 ResolveReference 的边界。481 收藏 -
Go netip.AddrFromSlice 可以把 4 字节或 16 字节切片解析为 netip.Addr。本文说明 IPv4、IPv6、长度错误、IPv4 映射 IPv6 与 AddrFrom4、AddrFrom16、ParseAddr 的选择边界。481 收藏 -
用完整 Compose 示例按字节估算 strings.Builder 容量,提前检查输出预算后调用 Grow,说明中文长度、分隔符、追加容量语义和不预留时的回退方法。481 收藏 -
Go 的 compress/zlib 可以用预置字典压缩具有固定重复片段的短消息。本文从适用条件出发,给出 NewWriterLevelDict 与 NewReaderDict 的配对写法,并说明 ErrDictionary、Close 和字典生命周期的处理边界。480 收藏 -
Go子测试可通过当前t.Setenv临时设置环境并自动恢复。本文给出串行表驱动示例,说明清理归属、空值与未设置状态,以及Parallel、配置缓存和后台任务的限制。480 收藏 -
用 crypto/rand 生成随机字节,再以 RawURLEncoding 得到无等号的 URL 令牌。示例区分随机性、编码格式和业务有效性,并说明严格解析、旧格式迁移与链接使用注意事项。480 收藏 -
用 Go httptest.NewRequest 构造 Handler 入站测试请求:绝对 URL 提供 Host,https scheme 提供非 nil 的 dummy TLS 状态,并说明请求体 ContentLength、Host 覆盖以及与真实 TLS 服务端的边界。479 收藏 -
sort.Search 找的是谓词第一次返回 true 的位置,不是直接判断相等。本文用升序和降序切片说明先 false 后 true 的单调条件,并处理未命中、重复值、空切片和插入位置。479 收藏 -
用一个可复用的 TextUnmarshaler 类型接入 Go flag.TextVar,讲清默认值、错误处理以及 TextVar、Var、Func 的选择边界。479 收藏 -
Go ZIP指定文件读取可通过完整条目名精确匹配完成。本文给出限制解压后大小、拒绝重名并关闭两层资源的写法,说明读取错误、内存归档与完整性边界。479 收藏 -
在 Go Expr 编译阶段用 AsBool 建立布尔返回契约,配合 WarnOnAny 处理 any 类型表达式,并区分编译错误、运行错误与结果接收边界。479 收藏 -
使用 Go go-diff 的 diffmatchpatch 按行压缩两段文本,经过 DiffMain 计算差异后还原原始行,并处理语义清理、换行和 UTF-8 边界。479 收藏 -
Go crypto/tls 的 VerifyConnection 会在标准证书校验后接收 ConnectionState,适合补充证书属性、连接状态和恢复连接策略。本文比较默认校验、VerifyPeerCertificate 与 VerifyConnection 的边界,并说明 InsecureSkipVerify 和服务端客户端证书的风险。478 收藏 -
Go maphash.Bytes 可以直接把 []byte 映射为 uint64 哈希值。本文说明 MakeSeed 与 Seed 复用、Bytes 和 Hash.Write 的关系,以及进程边界和密码学用途限制。478 收藏 -
Go 1.23 起可以让 for range 直接消费函数迭代器。本文用一个泛型集合实现 iter.Seq 的 All 方法,说明 yield 返回 false 时如何提前停止,并梳理数据复制、并发和发布前检查边界。478 收藏