Go语言技术文章
-
Go netip.Addr.AppendBinary 适合把 IPv4 或 IPv6 地址追加到已有字节切片。本文说明返回切片、IPv4/IPv6 长度、零值错误和协议字段边界。415 收藏 -
用一个小型 Go 工具说明 bytes.CutSuffix 如何处理固定后缀、如何判断 found,以及空后缀、未匹配和底层切片共享的边界。415 收藏 -
区分Go HTTP客户端单次请求预算、响应体读取与外层重试总耗时,提供绑定Context并限制读体大小的示例,解释阶段超时、错误记录和资源释放。415 收藏 -
新增依赖没有出现在 Go vendor 中时,按模块图确认、重新执行 go mod vendor,再用 vendor/modules.txt 和 -mod=vendor 构建验证,避免手工修改 vendor。415 收藏 -
Go go-flags 使用 *int 字段可以区分未传参数与显式传入 0:未传时指针为 nil,传入 0 时指针非空但目标值为 0;带 default 标签时再结合 IsSet 和 IsSetDefault 判断值的来源。415 收藏 -
介绍 Go Gonum 如何用 simple 构造带权无向图,再调用 path.Prim 生成最小生成树,读取总权重与树边,并说明非连通图和 Kruskal 的使用边界。415 收藏 -
区分 Go gosym.LineToPC 的文件键缺失与源码行无地址,给出保留错误类型的诊断代码,并说明源码版本、路径映射和近似定位的处理方式。415 收藏 -
Golang · Go问答 | 3星期前 | 标准库 · JSON · Go问答 · Go encoding/json offset json.Unmarshal Field JSON排错 UnmarshalTypeError
Go 的 JSON 类型错误不要只看错误字符串。本文用 UnmarshalTypeError 的 Field、Offset、Value 和 Type 四个字段,把嵌套字段与原始 JSON 字节位置对应起来,并说明类型错误后的部分填充边界。414 收藏 -
ShiftJIS 的字节边界不一定等于字符边界,逐字节调用 Go 解码器会让日文字符失去配对关系。本文说明 japanese.ShiftJIS 的 Decoder、transform.Bytes 和 Reader 应如何选择,并给出分块乱码与 U+FFFD 的排查方法。414 收藏 -
Go 的 ed25519.PrivateKey 是 64 字节表示,而 RFC 8032 语境里的种子是 32 字节。本文用 PrivateKey.Seed 读取种子,说明如何校验长度、复制敏感材料,以及用 NewKeyFromSeed 重新构造私钥。414 收藏 -
解释 Go uniseg 的 StepString 为什么要把 newState 传回下一次调用,区分 state、rest 与 boundaries,并给出连续分段和常见错误的简洁示例。414 收藏 -
本文解释 Go 泛型约束 comparable 的类型集合与设计边界,说明切片、map、函数和接口为何不能一概而论,并用泛型去重函数展示 Go 1.20 之后的约束满足规则与运行时风险。414 收藏 -
用 embed.FS、fs.Sub 与 os.CopyFS 封装默认资源复制函数,附完整 Go 示例和准备命令,说明目录层级、同名文件冲突、错误链、部分完成及实际工具中的适用范围。414 收藏 -
Go 用 crypto/sha512 和 io.CopyBuffer 边读文件边计算 SHA-512,适合大文件与批处理。本文说明如何复用读取缓冲区和摘要暂存区,避免整文件读入内存,并区分完整性摘要与带密钥认证的边界。414 收藏 -
bufio.Writer.Buffered 返回的是缓冲层当前暂存的字节数,不是文件长度或已落盘数据。本文用最小示例说明 Flush 前后的变化,并给出按阈值批量刷新与处理尾部数据的写法。414 收藏