Go教程技术文章
-
Go 1.27 将标准库 Unicode 数据升级到 17.0.0。本文用 unicode.Version、分类表和 UTF-8 校验搭出兼容处理方案,并说明旧工具链、字体与终端显示之间的边界。436 收藏 -
Go 1.26 新增 crypto/hpke,提供符合 RFC 9180 的混合公钥加密接口。本文用一个最小消息交换示例拆开封装、解封装、上下文信息和密钥用途边界,并说明如何验证密文不可直接当作明文使用。435 收藏 -
用 Go 处理连续 JSON 流时,Decoder.Token、Decode 和 Buffered 的边界很容易被误读。本文从两个 JSON 连在一起的现场出发,验证读取位置、解释看似吞值的原因,并给出可复查的多对象解析写法。435 收藏 -
用 Go 的 sync/atomic.Value 保存同一具体类型的只读配置快照,写入方复制后整体替换,读者通过 Load 无锁读取,并避开共享 map、类型漂移和并发写入等常见坑。435 收藏 -
Go 使用 bufio.Writer 写文件时,Flush 成功并不等于关闭顺序正确。本文用最小示例拆开 Write、Flush、Close 三个阶段,定位空文件、defer 逆序和错误被覆盖等常见问题。435 收藏 -
Go url.URL 的 Opaque 用于表示 scheme:opaque 形式的非层级 URI。本文对比 mailto、urn、data 与普通 HTTP 地址,说明字段读取、直接构造和误用边界。435 收藏 -
通过长度前缀 JSON 示例说明 Go rpc.Server.ServeCodec 如何接入自定义 ServerCodec,并梳理拆帧、并发写响应与关闭连接的边界。435 收藏 -
容器里的 Go 程序需要断点调试时,关键是把调试器参数和应用参数分开,并用关闭优化的二进制启动 headless Delve。本文给出一套可迁移的构建、启动、连接和排障步骤。435 收藏 -
已有 JSON 对象需要嵌入另一个 JSON 时,SJSON 应使用 SetRaw 或 SetRawBytes,而不是把对象当普通字符串传给 Set。本文从类型边界、原始片段校验和审计记录三个方面给出可落地写法。435 收藏 -
Go 自定义类型实现 encoding.TextMarshaler 后,可以用 MarshalText 统一输出 UTF-8 文本,并被部分标准编码包复用。本文从接口目标、接收者选择、错误边界和 JSON/XML 调用方讲清实现方式,再补上 TextUnmarshaler 的可逆设计。435 收藏 -
Go net/http 使用 http.Client.Timeout 设置客户端请求总超时,本文用一个可复用的小项目说明总预算、请求级 context、Transport 分阶段超时和超时错误识别。435 收藏 -
Go 反射中的 CanConvert 用来判断 Value.Convert 是否会因转换规则触发 panic。本文从 Go 1.17 的迁移场景出发,说明基础类型、命名类型、切片转数组的长度边界,以及为什么可转换不等于数值无损。435 收藏 -
Go 定时任务最容易被忽略的问题不是如何触发,而是上一次任务变慢后如何避免下一轮重入。本文比较 Ticker、单次触发和带状态的调度写法,并给出可验证的选型边界。434 收藏 -
Go 正则表达式可以用 (?P...) 声明命名捕获组,再通过 FindStringSubmatch 和 SubexpIndex 按字段名读取结果。本文说明数字分组的错位风险、命名分组写法,以及 nil、空分组和名称不存在时的处理方式。 434 收藏 -
Go 的 encoding/csv 支持把引号字段中的换行保留为同一条记录。本文说明正确的 CSV 写法、csv.Reader 的读取方式、字段数配置,以及如何用 ParseError、FieldPos 和 InputOffset 定位坏数据。434 收藏