Go教程技术文章
-
Go hash/fnv.New32a 适合为字符串或字节流生成稳定的 32 位非加密哈希。本文从最小写法出发,说明 Write、Sum32、Sum 的区别,演示分片输入,并划清 FNV-1a 与密码学哈希的使用边界。491 收藏 -
Go ksuid 解析 KSUID 后,Time() 适合得到可读的生成时间,Timestamp() 保留特殊纪元下的原始整数。本文说明两者的区别、错误处理和排序边界。491 收藏 -
用 Found 区分 bytes.Cut 的分隔符缺失与空字段,附可复用 CutFields 完整示例,说明首次切分、空输入、空分隔符与返回切片共享缓冲区的处理方法。491 收藏 -
用 strings.CutPrefix 一次完成可选前缀的判断与去除,讲清命中、未命中、空前缀和旧写法迁移时的返回值,附可直接改造的 Go 示例。490 收藏 -
bufio.Writer.Reset 可以复用内部缓冲区并切换下游 io.Writer,但会丢弃未 Flush 的数据并清除错误状态。本文用一个批量写入场景说明 Flush、Reset、资源关闭和并发边界。490 收藏 -
Go text/template 可通过 FuncMap 注册返回值与 error 的函数。本文结合状态报告示例说明注册顺序、Execute 错误链、缓冲输出和兼容处理,避免把半成品报告交付给调用方。490 收藏 -
Go url.PathEscape 用于编码单个 URL 路径片段,不是整条 URL 或查询参数的通用编码器。本文结合动态资源标识、斜杠和空格等字符,说明 PathEscape 的使用位置,并比较 QueryEscape 与 url.URL 的选择边界。490 收藏 -
Go image/png 通过 png.Encoder 的 CompressionLevel 控制编码策略,支持默认、无压缩、最快和最高压缩四种选择。本文用完整示例说明怎样接入 io.Writer、怎样处理编码错误,以及为什么 BufferPool 不能替代压缩级别设置。490 收藏 -
Go types.Scope 可以通过 Children 递归列出函数体中的嵌套块级作用域。本文从 Func.Scope 开始,结合 Pos、End、Names、Parent 和 WriteTo 说明作用域树的遍历、位置输出与旧 API 兼容写法。490 收藏 -
围绕 Go 的 chacha20poly1305.New,说明 32 字节密钥、NonceSize、Seal/Open 输入准备,以及构造失败和认证失败时的处理顺序。490 收藏 -
Golang · Go教程 | 2天前 | 切片 · 标准库 · 性能 · 内存管理 · Go教程 · Go 切片删除 slices.DeleteFunc slices.Delete 尾部清零 slices 引用释放
slices.Delete 与 DeleteFunc 都会原地整理切片并返回新的切片头。本文围绕指针元素和含引用字段的场景,说明为什么要接住返回值、为什么尾部清零能避免无效引用继续被底层数组持有,以及手写删除逻辑时应该补足哪些生命周期责任。490 收藏 -
Golang · Go教程 | 1天前 | 标准库 · Go教程 · Go 结构化日志 log/slog HandlerOptions LevelVar slog.Leveler slog.Level
Go slog.Leveler 只需要实现 Level() slog.Level,就能把业务级别映射到可比较的日志数值,并接入 HandlerOptions.Level 做阈值过滤。本文说明固定级别、LevelVar 动态调节、自定义显示名称和常见边界。490 收藏 -
GOPRIVATE 负责声明私有模块路径,并默认影响公共代理与 checksum 数据库的使用;本文进一步区分 GONOPROXY、GONOSUMDB、GOPROXY 与 Git 凭据边界,给出直连和私有代理的配置方式与排查清单。490 收藏 -
go doc -src 可展示依赖包指定函数或方法的源码。本文说明完整路径定位、Go 1.27版本后缀、项目解析上下文与源码身份记录,避免看错实现版本。490 收藏 -
Go 的 url.JoinPath 适合在已有 URL 上拼接路径段并清理多余斜杠、点段,同时保留 base 中的查询参数和片段。本文说明路径段转义、错误处理、URL.JoinPath 选择和常见边界。489 收藏