Go教程技术文章
-
Go 1.27 的 encoding/json/v2 遇到同一字段既可能是 42 又可能是字符串 42 时,可用局部自定义类型兼容两种表示,并严格拒绝小数、空白和越界值。170 收藏 -
pkg.go.dev API 可以直接返回 Go 模块的最新带标签版本。本文用 module、versions 两个接口和 Go 客户端示例,说明如何读取 version、isLatest,如何区分指定版本、main/master 分支和版本列表。170 收藏 -
Golang · Go教程 | 1星期前 | go · 时区 · 时间处理 · 本地时间 time.LoadLocation 时区解析 Go time.ParseInLocation Asia/Shanghai
本文解释 Go 的 time.ParseInLocation 如何把不带时区的本地墙上时间按指定 Location 解析,比较 time.Parse 与 Time.In,并说明 IANA 时区加载、RFC3339、夏令时边界和 UTC 存储做法。170 收藏 -
Go 的 encoding/csv 默认会根据首条记录约束列数。面对供应商字段增减、尾列缺失的文件,可设置 FieldsPerRecord=-1 放开列数检查,再结合 record 长度、ErrFieldCount 和行号完成可追踪的容错处理。169 收藏 -
Go flag.Visit 只遍历解析时被显式设置的参数,适合区分用户输入和默认值。本文说明 Visit 与 VisitAll 的差异、零值和布尔值边界、重复设置处理,以及子命令 FlagSet 的正确用法。168 收藏 -
使用 Go 标准库 build.Context.ImportDir 按目标平台和标签分析源码目录,统计纳入、忽略、测试及无效文件并比较环境差异。168 收藏 -
Go 1.22 的 slices.Concat 可以把多个同类型切片按传入顺序合并成新切片。本文用最小示例说明顺序、空切片、nil 结果、自定义切片类型,以及它与 append 的选择边界。168 收藏 -
Go iter.Pull 将推送式迭代器转换为 next/stop 拉取接口。本文用惰性生产者说明如何用 defer stop 覆盖提前退出、自然结束和异常路径,并梳理 ok 判断、零值与并发调用边界。167 收藏 -
csv.Reader 的 FieldPos 可以把最近一次 Read 返回记录中的字段索引映射到 CSV 原文的起始行和字节列。本文说明正确调用时机、多行字段与中文列号的边界,以及 FieldPos 和 ParseError 的选择。167 收藏 -
docker init 能快速生成 Go 项目的 Dockerfile、compose.yaml 和 .dockerignore,但生成结果只是起点。本文按构建版本、主程序路径、端口、运行用户和敏感文件五个边界,给出一份可落地的修改清单。167 收藏 -
Go runtime/metrics.Read 支持把指标名称放入可复用的 Sample 切片中批量读取。本文从定时采集场景出发,说明如何准备固定容器、按 ValueKind 取值、处理 KindBad,并在并发采集时隔离底层数组,减少不必要的采集分配。167 收藏 -
Golang · Go教程 | 1星期前 | Go教程 · HTTP客户端 · 后端开发 · io.ReadAll io.LimitReader Go HTTP客户端 Go LimitedReader 响应体大小限制
Go HTTP 客户端面对未知或不可信响应体时,不应直接无界 io.ReadAll。本文用 io.LimitReader(max+1) 与一个哨兵字节准确识别超限,说明 Content-Length 预检、压缩响应、读取错误、Body.Close、连接复用及 httptest 边界测试。166 收藏 -
用 Go strings.CutPrefix 处理可选前缀,覆盖命中、未命中、空前缀和重复前缀边界,并给出旧写法迁移方案。165 收藏 -
讲清 Go sync/atomic.Uint64 的自动对齐、primitive 原子函数在 32 位架构上的布局责任,以及无锁计数器的复制、快照、伪共享和分片边界。165 收藏 -
介绍 Go 1.27 goroutineleak profile 的接入方式、持续采样口径和检测边界,帮助定位永久阻塞的 goroutine 泄漏。165 收藏