Go语言技术文章
-
bufio.Scanner 默认 token 容量有限,读取超长单行时可能出现 token too long。本文说明如何在 Scan 前设置 Buffer,如何判断字节容量边界,以及什么时候改用 bufio.Reader。159 收藏 -
围绕 encoding/binary 的固定字段解析,对比 ByteOrder 直接读取、binary.Decode 与 binary.Read 的适用边界,并给出复用批处理结果切片、减少额外分配的实现方式。303 收藏 -
Go encoding/binary 解析二进制字段时,固定字节序、字段宽度和偏移必须同时对应协议。本文用小端序头部示例说明如何区分短输入、偏移错误、字节序不匹配与合法零值。358 收藏 -
用12字节固定头示例设计Go二进制解析接口,明确大端偏移、完整读取、长度上限、错误保留和版本兼容边界。254 收藏 -
Go 用 crypto/sha512 和 io.CopyBuffer 边读文件边计算 SHA-512,适合大文件与批处理。本文说明如何复用读取缓冲区和摘要暂存区,避免整文件读入内存,并区分完整性摘要与带密钥认证的边界。414 收藏 -
Go 用 crypto/sha512 计算文件 SHA-512 时,正确做法是让文件流写入 sha512.New 返回的哈希对象,再读取 Sum(nil)。本文解释空摘要、摘要长度不对、读取错误和重复复用对象导致结果异常的原因。229 收藏 -
用 Go crypto/ed25519 完成短消息签名和验证,并通过复用消息字节、预分配批处理结果和延迟编码减少外围额外分配。本文也说明签名切片本身仍由标准库返回,避免把优化目标说成零分配。454 收藏 -
用Ed25519短消息示例明确签名与验证接口,区分种子、密钥和文本编码,定位空结果、不匹配与算法变体混用问题。480 收藏 -
用Go标准库crypto/ed25519完成短消息签名与验证,解释私钥、公钥、消息字节和64字节签名的关系,并补充消息被修改、密钥长度、密钥保存与Ed25519选项的边界。110 收藏 -
围绕 Go crypto/tls 的 tls.Config.NextProtos,说明 ALPN 协议清单、客户端与服务端配置、协商结果读取,以及在批处理连接中复用只读配置以减少重复分配的边界。259 收藏 -
通过保留证书验证的Go TLS诊断示例解释ALPN配置与读取时机,定位空协议、有效配置、代理终止及应用实现不匹配问题。320 收藏 -
Go tls.Config 通过 NextProtos 发布 ALPN 候选,协议选择发生在 TLS 握手期间。本文用最小客户端和服务端示例说明如何配置 h2 与 http/1.1、读取 NegotiatedProtocol,并定位没有交集时的常见问题。158 收藏 -
Golang · Go教程 | 4天前 | 网络编程 · 标准库 · 性能优化 · ip地址 · Go教程 · IPv6 批处理 Go ipv4 netip.Addr Prefix.Contains CIDR net/netip 减少分配 netip.Prefix
Go net/netip 判断地址是否属于指定网段,核心是预解析 netip.Prefix 与 netip.Addr,再调用 Prefix.Contains。本文说明 IPv4/IPv6 边界、解析错误和批处理复用值类型的写法,减少热点循环中的重复解析与额外转换。248 收藏 -
用 Go net/netip 判断 IP 是否属于 CIDR 网段,关键是处理解析错误、零值、地址族不一致、IPv4 映射地址和 IPv6 zone。127 收藏 -
用 Go 的 net/netip 判断地址是否属于指定网段:先解析 Addr 和 Prefix,再调用 Prefix.Contains,同时处理解析错误、IPv4/IPv6 匹配与非规范 CIDR 边界。387 收藏