Go教程技术文章
-
Golang · Go教程 | 3星期前 | Go教程 · 输入校验 · Go math/big.Int.SetString Go 大整数进制解析 SetString 返回值判断 Go 输入校验 big.Int 字符串转换
讲清 Go math/big.Int.SetString 的成功与失败返回值、base=0 前缀规则、固定进制的常见误判,并给出安全处理非法输入的完整示例。334 收藏 -
bytes.Buffer.Reset 会清空长度,却保留底层存储。本文用基准和 Cap 指标拆开 Reset、Grow、大请求复用之间的关系,给出什么时候复用、什么时候换成新 Buffer 的判断边界。333 收藏 -
用 Go io.LimitReader 限制上传时,不能只看 EOF;把读取上限设为 maxBytes+1,再根据实际读取字节数判断是否超限。333 收藏 -
用 reflect.StructOf 动态生成带 Tag 的结构体时,重点检查字段是否导出、Tag 是否按约定格式读取,以及嵌入字段不支持提升方法这三个边界。333 收藏 -
用 Go 的 len、unicode/utf8.RuneCountInString 和项目级宽度规则区分字节数、Unicode 码点数与屏幕显示宽度,避免中英文、emoji 和非法 UTF-8 造成长度判断偏差。333 收藏 -
Go 的 bufio.Scanner 默认token缓冲并不适合所有日志行。本文说明如何在首次Scan前用Buffer设置最大字节数,识别ErrTooLong,并在超出业务上限时切换bufio.Reader。333 收藏 -
context.AfterFunc 的停止函数只负责阻止尚未开始的回调;一旦回调已经启动,调用 Stop 不会等待它结束。本文用可复现代码拆开停止竞态、资源释放和幂等收尾。332 收藏 -
Go 1.27 将 simd 与架构相关的 archsimd 作为实验性标准库能力带入发布版,但它不是所有业务代码的通用加速开关。本文从数据布局、目标架构和实验性 API 三个边界判断适用场景,并给出接入前的检查清单。332 收藏 -
Go 1.22 的 net/http.ServeMux 支持把 HTTP 方法和通配符直接写进路由模式。本文用小例子说明 PathValue、最具体匹配、冲突 panic 和 405 的判断方法。332 收藏 -
讲清 Go compress/gzip 的 Header.Name 如何写入 gzip 文件头、何时设置才生效、字符限制是什么,以及它与输出文件路径的区别。332 收藏 -
讲清 filepath.Rel 返回 .. 时的越界判断,给出跨平台的 Go helper,并说明 filepath.IsLocal 与 os.OpenInRoot 的适用边界。332 收藏 -
Go reflect.VisibleFields 会按 FieldByName 的可见性处理嵌入字段:浅层同名字段覆盖深层字段,同层同名字段互相抵消。本文用结构体示例说明冲突判断、StructField.Index 读取路径和 nil 嵌入指针边界。332 收藏 -
Go 的 sync.Once 适合做只读配置、规则表和重量级客户端的懒加载。它解决的不是语法问题,而是并发场景下只初始化一次、结果复用和失败边界怎么处理的问题。331 收藏 -
Go 1.27 移除了 go 命令对 bzr 的直接拉取支持。本文讲清代理与直连差异、两条迁移路线,以及干净缓存和 CI 的验收方法。331 收藏 -
Go 1.27 会整理 go.mod 中多个 require 块。本文从升级后的差异现场出发,说明 direct 与 indirect 分组的触发条件、验证方法和 CI 防复发做法。331 收藏