golang
已收录文章:52篇
-
Golang · Go问答 | 2个月前 | WaitGroup · golang · goroutine · 并发编程 · Go问答 · Goroutine 并发 WaitGroup Go 1.25 sync.WaitGroup.Go Add DoneGo 1.25 为 sync.WaitGroup 增加了 Go 方法,常见的 Add、go func、defer Done 三段式可以收成一次调用。它能减少计数配对遗漏,却不会替业务处理 panic、取消或结果收集。本文用批量写入场景解释最小写法、和旧写法的边界差异、版本兼容与复用 WaitGroup 时容易忽略的顺序。448 收藏
-
Go 1.26 默认开启 TLS 后量子混合密钥交换。本文用 Go 客户端和服务端最小实验说明协商结果怎么观察、旧客户端如何做灰度验证,以及 tlssecpmlkem 开关和回退边界。420 收藏
-
Golang · Go问答 | 1个月前 | golang · 路由 · net/http · Go问答 · ServeMux · net/http 通配符 路径参数 ServeMux Go问答 Go 1.22 PathValueGo 1.22 为 net/http.ServeMux 增加了方法模式、命名通配符和 Request.PathValue。本文用订单详情路由拆解单段参数、末尾多段参数、方法匹配、URL 解码和旧版 Go 兼容边界。404 收藏
-
Golang · Go教程 | 2个月前 | golang · Timer · 并发编程 · time.After · 性能排查 · time.After go timer Go 1.23 NewTimer Timer.Reset Timer.StopGo 1.23 之后,未引用的 Timer 可以被垃圾回收,time.After 不再天然等于内存泄漏。但在高频超时循环里,仍要先区分分配波动、超时语义和取消需求;需要复用或主动取消时,再用 NewTimer、Stop 和 Reset 把边界写清楚。403 收藏
-
Golang · Go问答 | 2个月前 | golang · HTTP · Context · 并发编程 · context.Context context.WithTimeout Go HTTP 超时Go 服务调用 HTTP、数据库或 RPC 时,超时不能只靠客户端等待。本文用 context.WithTimeout 给请求链路加上可传播的截止时间,并说明 cancel、父子 Context、select 和错误判断的常见坑。397 收藏
-
Go 的传统 encoding/json 会把 nil slice 编码为 null,把已初始化的空切片编码为 []。先由接口契约决定返回形状,再在成功响应的边界归一化并用测试锁定,避免前端空列表处理出现分支。392 收藏
-
Golang · Go问答 | 1个月前 | golang · 连接池 · database/sql · Go问答 · 连接池 事务 DBStats rows.Close Go database/sqlGo database/sql 里漏掉 Rows.Close,问题往往不是某一次查询报错,而是连接长期被结果集占着,最终让连接池等待堆积。本文从 DBStats 指标和事务生命周期入手,复现现象,解释 Rows、Tx 与连接归还的关系,并给出可复查的代码边界。374 收藏
-
slices.Clone 能复制 Go 切片,但它解决的是底层数组共享,不等于深拷贝或并发安全。本文用容量边界、append 行为和嵌套引用三个检查点说明该怎么选。371 收藏
-
Go 的 map 不能用 == 比较内容,只有和 nil 比较才合法。本文从可比较类型规则出发,拆解 len、reflect.DeepEqual 与排序后序列化三种校验方式的边界,并给出测试和生产代码中的选择建议。369 收藏
-
Go 1.24 完整支持带类型参数的别名声明。本文用一个从 legacy 包迁移到 collection 包的 Set API,比较 type 定义与 type 别名的差异,说明方法、导出类型、go.mod 版本和工具链兼容边界。335 收藏
-
Go 1.26 将此前实验性的 Green Tea 垃圾回收器设为默认。升级后不能只看单次压测数字,本文从适用场景、指标基线、最小验证和临时回退开关整理一套可落地的检查方法。334 收藏
-
Go 从 channel 接收时,关闭后的读取会立刻返回元素类型的零值。本文用订单事件场景说明如何用第二个返回值 ok 区分真实数据、关闭信号与业务结束条件,并给出可复查的写法。333 收藏