Go教程技术文章
-
介绍 Go flag.FlagSet.VisitAll 如何遍历全部已定义参数,读取 Name、Usage、DefValue 生成帮助文本,并解释它与 Visit 只遍历已设置参数的区别。393 收藏 -
Golang · Go教程 | 6天前 | 标准库 · HTTP服务 · Go教程 · Go net/http X-Forwarded-For http.Request RemoteAddr Forwarded 客户端地址
Go 的 http.Request.RemoteAddr 只能表示当前 Go 服务看到的 TCP 对端;部署在反向代理后时,客户端地址通常来自代理转发头,但必须先确认代理可信。本文给出可复用的解析函数、IPv6 处理和日志边界。393 收藏 -
用 Go 的 go/parser.ParseFile 解析单文件源码,保留注释并从 ast.File 读取包名、声明和文档字段,同时说明 FileSet、语法错误与完整包分析的边界。393 收藏 -
Golang · Go教程 | 2个月前 | 并发 · 错误处理 · go · Context · context.WithTimeout context.Cause Go context.WithCancelCause
用一个可运行的 Go 请求链示例说明 context.WithCancelCause 如何区分主动取消、超时和上游失败,并给出错误判断、日志记录与兼容旧代码的检查方法。392 收藏 -
用 go list -deps -json 导出当前构建条件下的包级依赖闭包,再通过 Imports 反查间接依赖的直接来源,并说明 DepOnly、Deps、构建标签和错误对象的边界。392 收藏 -
Go context.Value 适合携带请求级、跨 API 传播的元数据,不适合传业务参数或可选配置。本文用私有键类型、类型安全访问器和调用链示例划清使用边界。392 收藏 -
动态轮询任务需要调整周期时,活跃的 time.Ticker 直接调用 Reset;真正暂停后恢复则重新创建 ticker。本文结合控制消息说明 Stop、Reset 与 C 通道的生命周期边界,以及如何避免重复 ticker 和错误等待。392 收藏 -
Go 1.27 扩展了泛型函数的上下文推导:当赋值目标是明确的非泛型函数类型时,可以从目标签名推导类型参数。本文用函数赋值、切片字面量、类型转换和通道发送说明可推导边界。392 收藏 -
Go bytes.Runes 会把 UTF-8 字节切片解释为 Unicode 符文并返回 []rune。本文从基础转换、长度单位、非法 UTF-8 和字符边界几个方面说明如何安全使用。392 收藏 -
time.Duration 以 int64 纳秒保存,和整数相乘时不会自动报告溢出。本文从边界值、四种符号组合和 MinInt64 特例出发,给出乘法前检查并返回 overflow 标记的安全写法。392 收藏 -
Go 1.22 改变了 range 循环变量的作用域。本文用 goroutine 闭包示例说明旧写法为何会读到同一个值、go.mod 如何决定语义,以及升级后怎样验证和清理多余代码。391 收藏 -
线上 Go 接口偶发超时,通常不是把超时时间调大就能解决。本文用一个订单查询场景演示如何沿 context 从 Handler 传到下游调用,结合日志和取消信号定位未结束的请求,并给出回滚与告警检查方法。391 收藏 -
reflect.VisibleFields 可以按 Go 的字段可见性规则枚举结构体字段,连同嵌入字段也能得到稳定的 Index 路径。本文用一个审计结构体示例说明如何读取字段、区分匿名字段和未导出字段,并处理重名与空结果边界。391 收藏 -
Go 解析 JSON 大整数时,map[string]any 默认会把数字放入 float64,可能改写末尾精度。本文比较结构体整数、json.Decoder.UseNumber 和字符串三种方案,帮助你按数据结构与运算需求选择正确做法。391 收藏 -
用 Go maps.Copy 合并默认配置和覆盖配置,明确 dst/src 的覆盖方向,处理 nil 目标 map,并说明嵌套切片等值的浅复制边界。391 收藏