Go教程技术文章
-
Go 两个本地进程可以通过 Unix Socket 通信:服务端使用 ListenUnix 和 AcceptUnix,客户端使用 DialUnix,双方用换行或长度前缀约定消息边界。本文还说明 socket 文件清理、超时、权限和 unixpacket 的选择边界。418 收藏 -
encoding/json/v2 可用字段标签收窄调用级默认行为。本文通过小项目演示 string、omitempty、omitzero 与 case 选项的优先级、适用方向和测试方法。418 收藏 -
围绕 Go io.WriterTo 与 io.Copy 的源端复制路径,说明如何实现 WriteTo、如何处理短写和错误,以及包装类型和 ReaderFrom 会怎样改变快路径选择。418 收藏 -
Go encoding/binary.Append 能把固定大小的数据按指定字节序追加到已有 []byte,并返回新的切片与错误。本文说明返回值、容量复用、ByteOrder 以及 AppendUvarint 的选择边界。418 收藏 -
Go 的 html/template.ParseFS 可以直接从 embed.FS 加载模板,但嵌入路径、模板匹配和执行错误各有边界。本文用一个可运行的页面渲染例子拆开加载、执行、错误定位与发布验收。417 收藏 -
Go runtime/metrics.Read 适合把一组运行时指标一次性读入复用的 Sample 切片。本文从 metrics.All 获取描述符,演示样本缓冲、ValueKind 类型分支、未知指标处理与并发读取边界,帮助你写出不会误读数值的采集代码。417 收藏 -
讲清 Go crypto/ecdh.NewPrivateKey 导入现有私钥的正确入口,区分原始标量、PEM 与 PKCS#8,并给出曲线长度、转换和存储边界。417 收藏 -
通过 Batch[T] 的 Filter、Clone 和 Map[U] 示例,说明泛型方法怎样直接复用接收者已有的 T、自动继承原约束,并判断何时才需要声明新的方法类型参数 U。417 收藏 -
把已有的 Go 推送式回调封装为 iter.Seq[T],让调用方用 range 消费,并正确处理提前停止、资源清理和单次迭代边界。417 收藏 -
Golang · Go教程 | 2星期前 | 加密 · Go教程 · crypto/hpke Go HPKE associated data aad Sender.Seal Recipient.Open
Go 的 crypto/hpke 用 aad 把租户、版本和消息序号等公开字段绑定到密文认证范围。本文区分 info 与 aad,给出 Sender.Seal/Recipient.Open 的实现方式,并说明上下文计数器、消息顺序和重放处理的边界。417 收藏 -
介绍 Go 1.22+ net/http ServeMux 的路径参数提取方式,说明 PathValue、参数校验以及 400、404、405 状态码的边界,并给出适配外部路由的 handler 契约。417 收藏 -
Go 的 path.Match 适合匹配使用正斜杠分隔的资源名。本文用最小示例说明 *、?、字符类、转义、完整匹配和 ErrBadPattern 的边界,并给出生产配置检查方法。417 收藏 -
Go 的 token.File.String 会输出文件名与 Pos 范围,而不是行列号。本文用 FileSet、Base、End、Pos 和 Position 的关系,拆清格式化文件对象与定位源码位置的使用边界。417 收藏 -
Go 1.27 的 encoding/json/v2 提供 UnmarshalRead,适合从 HTTP 请求体、文件或其他 io.Reader 解码一个完整 JSON 值。本文从请求体尾随数据的故障现场出发,说明 EOF、单值输入、大小限制、错误分类,以及多值流为何应该改用 UnmarshalDecode。417 收藏 -
Go 1.26 的 go fix 支持 //go:fix inline,可把旧函数、常量或类型别名迁移到新 API。本文从薄包装、diff 预览、参数副作用、defer 与测试边界说明如何准备规则。417 收藏