Go语言技术文章
-
独立运行 Go 测试二进制时,用 go tool test2json 配合 -test.v=test2json 输出逐行 JSON 事件。说明参数归属、流式解码、测试失败识别及原始日志保存方式。494 收藏 -
Go 反向代理中 Host 变了,通常不是请求丢失,而是 Request.Host、URL.Host 与 ProxyRequest.SetURL 的职责不同。本文结合 ReverseProxy 的 Rewrite 写法,说明如何保留入口 Host、设置上游 Host,并排查代理链中的字段来源。494 收藏 -
介绍Go httptrace识别连接复用的方法,区分Reused、WasIdle与IdleTime,通过共享Transport示例说明HTTP/2、响应体和并发回调的观察边界。494 收藏 -
Go go-echarts/v2 不需要把多个图表硬塞进一个实例。本文用 components.NewPage 创建页面容器,通过 AddCharts 追加独立图表,再设置布局、页面标题和统一输出,最后给出 v1 到 v2 的迁移检查清单。494 收藏 -
robfig/cron/v3 默认采用分钟开头的五段规则。本文说明 WithSeconds 六段秒制、SecondOptional 兼容模式及 ParseStandard 的区别,并给出处理注册错误和停止调度的完整示例。494 收藏 -
Go 中 errors.Is 返回 false,通常不是判断函数失效,而是错误链没有通过 %w 保留下来,或比较目标每次都由 errors.New 新建。本文用最小示例拆开包装、哨兵错误、自定义 Is 和 errors.Join 的边界,给出可复查的修复清单。494 收藏 -
Go 解析 key=value 配置时,strings.Cut 会在第一次分隔符处分开字符串,并通过 found 区分未找到分隔符的情况。本文从具体输入出发,处理空值、多处分隔符和错误边界。494 收藏 -
使用 os.Root 后仍遇到路径校验失败,通常是把根目录再次拼入参数,或混淆了 io/fs 路径与本地路径。本文结合 IsLocal、Localize 和 Root.Open 梳理可直接落地的相对路径规则与排错方法。494 收藏 -
Go 的 string 按字节存储,直接切片可能把多字节 UTF-8 字符截在中间,产生非法编码。本文用可复现代码说明原因,并给出按 rune 截取与按合法字节边界截取的选择方法。494 收藏 -
Go ServeMux 将尾斜杠模式视为子树,访问子树根的无尾斜杠路径时会默认重定向。本文用 httptest 验证状态码与 Location,并说明如何注册精确路径覆盖默认规则。494 收藏 -
从最终输出类型、读取需求、Grow 的字节语义和 Bytes 的别名边界出发,说明 strings.Builder 与 bytes.Buffer 在 Go 中如何选择。494 收藏 -
atomic.Value 先保存 int 后保存 string 为什么会 panic?本文解释 any 背后的动态具体类型,并用固定 Snapshot 外层结构安全承载多种业务数据。494 收藏 -
Go 1.24 新增的 strings.FieldsSeq 返回 iter.Seq[string],按 unicode.IsSpace 识别连续空白并逐项产生字段。本文对比 Fields,说明空文本、Unicode 空白、提前停止和结果保存的边界。494 收藏 -
Go 的 time.Ticker.Reset 会停止当前节拍并按新周期重新计时。本文用一个动态刷新任务说明 Reset 的调用边界、正数周期校验、慢消费者丢 tick 以及并发读写时应如何组织所有权。494 收藏 -
json.Decoder.Decode 成功一次,不代表请求体只包含一个 JSON 文档。本文用 Token、第二次 Decode 和 io.EOF 判定尾随数据,拆解单文档接口的校验边界与常见误区。494 收藏