Go语言技术文章
-
Go map 判断指定键是否存在,要使用 comma-ok 双值写法;本文用最小示例说明零值、缺键、nil map 与并发访问的边界。456 收藏 -
Go mime.TypeByExtension 需要传入带点的文件扩展名,未知映射返回空字符串,并可能受到系统 MIME 数据影响。本文从文件名提取、大小写处理、自定义映射和上传安全边界四个方面说明如何正确使用。456 收藏 -
Go 的 time.Ticker.Reset 会从新时长重新安排下一次 tick,但慢接收者、未执行到 Reset 或并发修改都会让观察结果像是旧周期仍在生效。本文用最小示例拆开这些原因,并给出单一重置入口与日志复查方式。456 收藏 -
Go 使用 x/text/message Printer 配合 language.Tag 输出地区化数字。本文比较 Printer、fmt 和显式格式化的适用边界,说明 Printf、Sprintf、%d、%f、%g 以及 # 标记的选择。456 收藏 -
Go x/image/font/opentype 中 Size 是点值,DPI 是输出分辨率;两者共同决定 Face 的缩放比例。本文用源码关系、Metrics、GlyphBounds 和绘制坐标说明为什么字号不变时修改 DPI 会让字形变大,并给出参数选择策略。456 收藏 -
Go select 一旦包含 default,在没有可进行通信时就会立即执行。把它放进消费 for 循环会让循环持续重试,表现为 CPU 升高但没有有效消费。本文从故障症状、阻塞式修复、取消与关闭 channel 处理,到必须轮询时的退避边界,给出一套可直接套用的处理方式。456 收藏 -
用 embed.FS 把 Goose SQL 迁移打进 Go 程序,说明目录保留、SetBaseFS、数据库方言与连接配置,提供完整迁移命令,并解释重新构建、只读文件和发布执行责任。456 收藏 -
go-pretty/table 的 RowPainter 接收整行并返回 text.Colors,适合按状态或排序位置统一着色。本文说明回调契约、SetRowPainter 的覆盖关系、RowPainterWithAttributes 的行号语义,以及空行和禁色场景的处理。456 收藏 -
Go netlink 的 AttributeEncoder.Nested 用嵌套编码器封装一组子属性,并自动设置 Nested 标志。本文从属性编号、字节序、编码错误到 Nested 解码,给出一套可维护的嵌套字段写法和发布前检查清单。456 收藏 -
Go reflect 查到未导出字段不代表能调用 Interface 或 Set。本文区分字段存在、导出、可寻址与可修改,给出返回明确错误的读取示例及公开接口替代方案。456 收藏 -
使用 Go image/gif 的 DecodeAll 读取 GIF 全部帧,导出每帧 Delay、可读播放时长和 LoopCount 循环语义,并说明 Decode 与 DecodeAll 的迁移边界。456 收藏 -
Golang · Go问答 | 5天前 | HTTP服务 · net/http · Go问答 · Go keep-alive http.server IdleTimeout StateIdle ConnState
StateIdle 表示请求处理完成后的 keep-alive 等待,并不等于连接泄漏。本文用 http.Server.ConnState 记录状态和时间戳,再结合 IdleTimeout、StateClosed、HTTP/2 与 Hijacked 边界判断长期停留是否正常。456 收藏 -
types.Union 描述接口中的联合类型项,不是运行时值容器。通过泛型与分析模型示例,区分非基本接口约束、具体类型调用和业务数据承载方式。456 收藏 -
用 Go 的 net/http/httputil.ReverseProxy 记录入站请求、改写后的出站请求、后端响应和代理错误,说明 DumpRequestOut、Rewrite、ModifyResponse 与 ErrorHandler 的职责边界。455 收藏 -
Go slog 不会自动把 context 中的任意值写成日志字段。本文按请求入口、logger.With、InfoContext 和 Handler 包装四个层次,给出补充 request_id 等上下文字段的安全写法与迁移检查清单。455 收藏