Go语言技术文章
-
Go 解析 JSON 请求时,默认宽松解码、Decoder 严格校验和 RawMessage 扩展区分别适合什么场景?本文用原创示例说明未知字段、必填校验与接口演进的取舍。397 收藏 -
Go 的 JSON 接口经常有一组固定字段和一个随类型变化的 payload。本文用 json.RawMessage 保留可变字段,按类型延迟解析,并区分缺失、null、类型不匹配和整体语法错误。397 收藏 -
Go x509 的 SetFallbackRoots 用于系统根证书池不可用时的兜底配置。本文说明 CertPool 构造、显式 Roots 优先级、nil 与重复调用边界,以及 GODEBUG 排查方式。397 收藏 -
testing.T.Name 会返回当前测试或子测试的完整名称,嵌套 Run 使用斜杠连接层级,重复兄弟名称会自动追加序号。本文用表格驱动测试说明如何读取、记录和正确使用这个名称。397 收藏 -
Go 1.27 的 encoding/json/v2 已移除实验期 format 标签选项。本文按标签参数形态、time.Time、time.Duration 和自定义类型说明迁移时应该怎么改。397 收藏 -
本文用 Go net/http 说明 Transport.CloseIdleConnections 只关闭 keep-alive 空闲连接,区分 Response.Body、活动连接和请求取消,并给出 Client、Transport 与连接池参数的排查方法。397 收藏 -
以Linux交叉构建为范围,区分目标架构与链接方式,介绍关闭cgo和保留目标C工具链两条路线,并说明动态加载器、共享库及运行镜像迁移条件。397 收藏 -
Go bytes.FieldsFunc 接收一个 rune 判断函数,可把逗号、竖线、空白等混合字符当作分隔符,并返回不含空元素的字节子切片。本文说明自定义判断、UTF-8 语义、空结果和必要时的复制边界。397 收藏 -
Go Decimal 无法恢复进入 float64 前已丢失的十进制尾数和输入格式。通过相邻长小数示例区分浮点往返表示与原始输入,并说明字符串、整数系数入口及舍入策略的适用边界。397 收藏 -
Go google/uuid 的 Validate 只返回格式判断结果,Parse 则解码得到 UUID 值。结合严格36位小写接口示例,区分兼容格式、规范化、零值策略、版本要求与资源权限。397 收藏 -
Gonum 的 YenKShortestPaths 适合在非负权图中取得多条不含环的候选路径。本文从带权有向图构造、k 与 cost 参数、路径读取和边界处理几个方面说明如何使用。397 收藏 -
Go gzip Close 负责补写压缩数据和流尾部,文件 Close 与 Flush 不能代替它。本文给出保留复制、压缩收尾及文件关闭错误的示例,说明失败产物隔离与交付条件。397 收藏 -
使用 encoding/json.Decoder 解析 JSON 数字时,先调用 UseNumber 保留原始字面量,再用 json.Number.Int64 判断是否为范围内的整数;遇到小数或越界,不要退回 float64,而是保留 Number.String() 和转换错误。397 收藏 -
io.NewOffsetWriter 把 WriterAt 映射成带基准偏移的写入器,但 Seek 不支持 io.SeekEnd。本文拆解失败原因、相对坐标与文件末尾定位的可执行写法。396 收藏 -
token.File.String 只按 Name、Base 和 End 生成固定的文件描述。要控制输出中的文件标识,应在 AddFile 时传入 filename;需要自定义日志格式时,读取 Name、Base、Size、End 后自行拼接。396 收藏