Go教程技术文章
-
Go math.Nextafter32 返回 float32 朝目标方向的下一个可表示值。本文用最小示例说明方向语义,并梳理相等输入、零值、NaN 与极值附近的边界,帮助区分邻接值操作和误差容忍判断。260 收藏 -
Go 的 os.File 是文件句柄,不是可直接填写字段的配置结构。本文用独立配置表达可选权限、偏移、截断和同步策略,并说明打开、写入、失败处理与关闭的职责边界。260 收藏 -
Go encoding/json 解码部分更新请求时,普通字段容易把缺失和显式 null 压成同一个零值。本文用 Optional[T] 保留 Present、Null、Value 三种状态,再用 map[string]json.RawMessage 处理动态字段,并说明对象复用与 omitempty 的边界。260 收藏 -
Go 的 io/fs.FileMode 同时携带文件类型位和权限位。本文从 FileInfo、DirEntry、IsDir、IsRegular、Type、Perm 几个入口说明如何区分目录、普通文件与符号链接等特殊类型,并补上遍历时的错误处理边界。259 收藏 -
Go 用 collate.New(language.German) 创建德语文本排序器。通过完整示例说明语言标签、稳定排序与原切片保护,并解释比较等价、并发独占和配置记录的使用边界。259 收藏 -
Go iter.Pull2 的第三个返回值 valid 才表示当前 pair 是否有效,错误可以作为第二个值正常传递。本文用一个带错误值的 Seq2 示例说明自然结束、错误值和 stop 清理之间的区别。259 收藏 -
围绕 Go crypto/tls 的 tls.Config.NextProtos,说明 ALPN 协议清单、客户端与服务端配置、协商结果读取,以及在批处理连接中复用只读配置以减少重复分配的边界。259 收藏 -
Go iter.Seq2 用 yield func(K, V) bool 表达键值对迭代器,消费者可用 for range 同时接收键和值,break 时安全通知生产者停止。258 收藏 -
Go go:embed 可将目录资源装入 embed.FS。本文说明目录模式与隐藏文件规则、原始路径与 fs.Sub 子树读取,以及只读资源和敏感配置的边界。258 收藏 -
Go json/v2 的 MarshalWrite 负责把数据写入 io.Writer,json.Deterministic(true) 负责让同一输入产生稳定的 JSON 字节结果。本文用原创示例说明 map 键、结构体字段、自定义 Marshaler 和构建条件的边界。258 收藏 -
Go errors.Is 适合判断被包装错误链中是否包含某个哨兵错误;需要提取原始具体类型和字段时,应改用 errors.As 或 errors.AsType。258 收藏 -
用 github.com/google/uuid 的 NewV7 生成带 Unix 毫秒时间前缀的 UUID v7,本文说明依赖安装、错误处理、排序边界、日志与发布检查,帮助 Go 服务把标识符生成逻辑放进稳定的生产边界。258 收藏 -
使用WithVariables声明外部变量,并在Code.Run中按顺序传值,结合过滤示例说明输入对象、变量类型、迭代错误和结果容器。258 收藏 -
Go pprof 的 heap profile 既能看当前仍占用的对象,也能看累计分配。本文从 inuse_space 与 inuse_objects 入手,结合 top、list、调用图和基线对比,定位长期保留对象并避开采样误判。257 收藏 -
Go 的 image/png 通过 CompressionLevel 提供默认、无压缩、最快和最佳压缩四种选择。本文用 Encoder 配置 PNG 编码级别,说明文件大小、编码开销和 BufferPool 之间的边界。257 收藏