Go教程技术文章
-
Go 1.27 的 encoding/json/v2 遇到同一字段既可能是 42 又可能是字符串 42 时,可用局部自定义类型兼容两种表示,并严格拒绝小数、空白和越界值。170 收藏 -
Go 的 os.CreateTemp 通过 pattern 控制临时文件名前缀;加入星号还能指定随机段位置并保留扩展名。本文说明目录选择、清理责任与不同创建方案的适用边界。144 收藏 -
通过长度前缀 JSON 示例说明 Go rpc.Server.ServeCodec 如何接入自定义 ServerCodec,并梳理拆帧、并发写响应与关闭连接的边界。435 收藏 -
Go 的 netip.PrefixFrom 可以把 Addr 和前缀位数构造成 Prefix,但不会自动清除 host bits。本文说明如何检查 IPv4/IPv6 位数边界,并用 Masked 得到规范化网段。173 收藏 -
Go 的 mail.AddressParser 可通过 mime.WordDecoder.CharsetReader 解析 RFC 2047 自定义字符集显示名。本文给出字符集白名单、UTF-8 转换、单地址与列表解析、错误回退和核对方法。107 收藏 -
Go 的 cookiejar.Options 可通过 PublicSuffixList 限制 Cookie 的域作用范围。本文讲清 publicsuffix.List 接入方式、nil 配置风险、自定义接口约束与公网客户端实践。211 收藏 -
Go 的 http.ServeContent 能基于可寻址内容自动处理 Range、Last-Modified 与条件请求。本文用完整文件端点讲清 ETag 设置、206/304 响应及大文件边界。370 收藏 -
Go 1.24 及以上通过 http.Transport.Protocols 限定客户端使用 HTTP/1、HTTP/2 或明文 h2c,并用 Response.Proto 验证实际协商结果。410 收藏 -
Go 的 http.NewResponseController 能统一调用刷新、截止时间、连接接管与全双工能力。本文用场景对比和完整示例讲清选择方法与边界。194 收藏 -
net.Dialer.ControlContext 会在套接字创建后、真正拨号前提供受保护的 RawConn。本文给出 Linux 下设置 SO_SNDBUF 与 TCP_USER_TIMEOUT 的完整写法,并讲清双层错误、网络类型和跨平台边界。139 收藏 -
用 Go 的 mime.WordDecoder.DecodeHeader 解码 RFC 2047 邮件主题,区分 Decode 与 DecodeHeader,配置 CharsetReader,并排查未知字符集和地址解析边界。430 收藏 -
Go 的 bits.Add64 能同时返回 64 位和与一位进位。本文从 128 位加法扩展到任意长度 uint64 切片,讲清字序、进位传播、不等长补零和最高位溢出处理。325 收藏 -
Go 的 big.ParseFloat 通过 prec 控制二进制有效位数,通过 RoundingMode 决定舍入方向。本文用可复用代码说明参数选择、Accuracy 判断和展示精度之间的边界。363 收藏 -
Go 1.23 的 maps.Insert 可以把 iter.Seq2 产生的键值对直接写入已有 map。本文用 slices.All、maps.All 和自定义序列说明最小写法、覆盖规则、nil map 限制,并对比 Insert、Collect 与 Copy。370 收藏 -
slog.LogAttrs 直接接收类型化 Attr,可跳过 Log 的交替键值解析和通用参数转换;再配合 Logger.With、Enabled 与基准测试,可以减少热点日志中的重复工作和不必要分配。180 收藏