Go教程技术文章
-
Go 的 encoding/binary.Size 适合计算固定大小数据的二进制长度。本文用结构体、数组和不可编码字段拆开说明返回值、缓冲区分配与错误处理边界。360 收藏 -
Go strconv.AppendQuoteToASCII 会把字符串追加成带双引号的 Go 字符串字面量,并把非 ASCII 字符转成 ASCII 转义。本文用最小示例说明已有 []byte 的追加方式、控制字符处理、返回切片边界,以及它与 Quote、AppendQuote 的取舍。360 收藏 -
用 github.com/pkg/sftp 和 io.Copy 流式下载远端文件,配合临时文件、错误链与关闭错误处理,避免半成品污染最终路径。360 收藏 -
Go atomic.Uint64 的原子性不会消除 uint64 的回绕边界。本文说明如何识别溢出、用 CAS 实现不会回退的饱和计数,并选择清零、分段或归档方案。359 收藏 -
Go 的 regexp.Regexp.SubexpIndex 可以把命名捕获组转换为 FindStringSubmatch 返回值中的稳定位置。本文说明索引映射、不存在与未匹配的区别、重复命名规则,以及如何封装安全读取逻辑。359 收藏 -
sync.OnceFunc 把无参无返回值函数包装成可并发调用的一次性入口。本文给出对象级初始化示例,解释包装函数应共享、并发调用等待完成、panic 重复传播,以及重试和初始化后修改的边界。359 收藏 -
介绍Go image/color在RGBA与NRGBA间转换的模型写法,解释预乘Alpha、RGBA方法、整图处理、量化误差及完全透明颜色的信息丢失。359 收藏 -
Go 的 x509.CertPool.AddCert 可以把已解析的自签名或内部 CA 证书加入信任池。本文从 PEM 解析、系统根池组合和 tls.Config.RootCAs 三个连接点说明正确用法,并区分未知 CA、主机名不匹配与证书过期等常见错误。358 收藏 -
Go encoding/binary 解析二进制字段时,固定字节序、字段宽度和偏移必须同时对应协议。本文用小端序头部示例说明如何区分短输入、偏移错误、字节序不匹配与合法零值。358 收藏 -
Expr 的 Env 不是运行时数据容器,而是表达式编译时的输入声明。本文用结构体环境拆解 Compile 与 Run 的职责边界,说明字段、类型和运行值不一致时如何定位,并给出可复用的错误处理写法。357 收藏 -
用 Gonum interp.PiecewiseLinear 接收严格递增的 X/Y 样本,调用 Fit 拟合分段线性插值器,再用 Predict 查询样本区间内的中间值,并说明区间外结果与其他插值器的选择边界。357 收藏 -
Golang · Go教程 | 1星期前 | JSON · 错误处理 · 数据校验 · Go教程 · Go 嵌套错误 JSONSchema JSON Schema ValidationError 校验错误 JSON Pointer
Go jsonschema/v5 校验失败时,ValidationError 会用 Causes 保留嵌套原因,并提供实例路径、关键字路径和错误消息。本文用递归展开器把错误树整理成前端和日志可直接消费的字段错误列表,同时说明 DetailedOutput、BasicOutput、数组索引和组合关键字的处理方式。357 收藏 -
Go 1.27 起,go test 默认启用 stdversion vet 检查,用来发现源文件使用了高于项目语言版本的标准库符号。本文从诊断输出、单独复查到修复判断,说明怎样读懂 stdversion 结果。356 收藏 -
Go netlink 发送只读查询消息时,重点是正确组合 family、消息类型和 Request、Dump 标志。本文用 mdlayher/netlink 说明 Dial、Message、Execute、分段回复与权限边界。356 收藏 -
通过私有可比较键、只含值字段的Metadata快照和返回副本的读取接口,在Go context中传递只读请求标签,并区分缺失、子值遮蔽和共享引用风险。355 收藏