Go语言技术文章
-
Golang · Go问答 | 2天前 | 网络编程 · 并发 · go · 超时处理 · crypto/tls · Go crypto/tls 取消 context 超时 连接状态 HandshakeContext
crypto/tls.HandshakeContext 用于在 TLS 握手阶段接收 context 取消信号,但取消发生在握手前、握手中和握手后,连接状态并不相同。本文用一个最小客户端拆开超时、错误判断和关闭连接的边界。130 收藏 -
Golang · Go教程 | 2天前 | 网络编程 · IPv6 · Go教程 · 代码质量 · go vet · IPv6 net.Dial Go 1.25 go vet hostport net.JoinHostPort
Go 1.25 的 go vet 新增 hostport 分析器,可以发现用 fmt.Sprintf 拼接 host 和 port 后传给 net.Dial 的 IPv6 地址错误。本文从错误现场出发,改用 net.JoinHostPort,并用 vet 与运行测试核对修复结果。284 收藏 -
用 Go 1.25 的 iter.Seq 封装一条可提前停止的流式校验链,说明 yield 返回值、错误回传和单次迭代边界,避免先收集切片再重复扫描。387 收藏 -
Go 的 testing.T.Context 返回一个会在清理函数执行前取消的上下文。把它传给数据库、HTTP 或后台 goroutine,可以让测试超时和资源清理形成可观察的闭环。本文用一个可运行的测试示例说明取消链、Cleanup 顺序和失败定位边界。294 收藏 -
用 Go crypto/x509 验证证书链时,Roots 决定信任锚,Intermediates 只负责补链,VerifyHostname 还要单独核对主机名。本文用最小代码说明三者的边界与排错顺序。345 收藏 -
Go 1.25 中可以用 runtime/debug.SetCrashOutput 把未处理 panic 和致命错误追加写入单独文件。本文用一个可运行的崩溃留证流程,说明文件轮转、监控进程接收和恢复边界。216 收藏 -
Go 1.25 让 Linux 容器中的默认 GOMAXPROCS 感知 cgroup CPU 配额,并提供 runtime.SetDefaultGOMAXPROCS 重新启用默认值。本文从升级风险、代码改动和验收证据三方面给出迁移清单。394 收藏 -
把多项错误拼成字符串会丢掉可判断的错误链。本文以校验、写盘和关闭资源为例,演示如何迁移到 errors.Join,保留 errors.Is 判断能力,并处理 nil、重复错误与 errors.Unwrap 的边界。316 收藏 -
encoding/hex.AppendEncode 适合把字节编码结果追加到已有缓冲区。本文用 EncodedLen 判断容量,拆开 dst[:0] 复用、尾部追加和切片边界,避免预留不足或误把编码结果当原始字节。456 收藏 -
Go 的 net/netip 用 Prefix 表示网段,ParsePrefix 负责解析输入,Masked 负责得到规范化网络地址,Contains 才负责判断地址归属。本文用 IPv4、IPv6 和非规范输入拆开 Bits、Masked 与 Contains 的边界。360 收藏 -
reflect.Value.Comparable 用来先判断值是否具备 Go == 比较条件。本文从接口值和 slice、map 等不可比较类型出发,说明安全比较的写法、panic 边界与迁移检查点。148 收藏 -
Go 中 bytes.Buffer 适合逐步写入并把内容交给下游读取,bytes.Reader 适合只读字节切片、定位游标和重复读取。本文用一个小实验拆开两者的状态变化与选择边界。279 收藏 -
Go 的 encoding/binary.NativeEndian 适合读取本机格式,但不应直接替代协议字节序。本文用一个二进制记录示例拆开 NativeEndian、unsafe 转换和跨机器可移植编码的边界。267 收藏 -
Golang · Go问答 | 2天前 | 标准库 · JSON · go · 数据解析 · 边界处理 · Go token encoding/json json.Decoder JSON流 More
当 JSON 字段不固定,encoding/json.Decoder.Token 可以按流读取结构边界。本文用 Token、More 和 json.Delim 解析嵌套对象,说明何时遇到 io.EOF、如何跳过未知值,以及最容易写错的 More 调用位置。255 收藏 -
处理 multipart/form-data 时,不必把上传文件全部读入内存。本文用 NextPart 与 NextRawPart 展示如何按字段读取、跳过文件内容,并说明文件名解码和边界错误的判断方法。210 收藏