Go语言技术文章
-
在 Go 应用中,可通过 go 关键字将后台任务(如 Redis 监听、定时检查)作为独立 goroutine 启动,与 http.ListenAndServe 并发执行;但必须避免空循环、合理管理生命周期,并优先使用 channel 或 select{} 等协作式等待机制。 在 Go 应用里,像402 收藏 -
Go 的 regexp.Expand 和 ExpandString 可以把正则捕获结果写入模板。本文从命名捕获组、模板边界和字节切片复用出发,给出可验收的替换写法,并说明空捕获组与并发使用时的注意点。402 收藏 -
Go 1.26 迁移 B.Loop 基准时,重点不是把 b.N 换成一个新方法名,而是确认计时边界、函数调用保活、内联变化和死代码消除没有改变被测对象。402 收藏 -
Go 统计整数二进制中 1 的数量,直接使用 math/bits 的 OnesCount 系列即可。本文按 uint、uint32、uint64 的宽度说明函数选择,演示切片汇总,并解释有符号整数转换时的补码边界。402 收藏 -
Go 的 os.ReadDir 函数会按文件名排序,而 (*os.File).ReadDir 返回目录顺序。本文用最小示例说明两者差异,并给出目录批处理和测试中保持结果稳定的写法。402 收藏 -
Go 向已关闭 channel 发送会触发 panic。本文从发送生命周期出发,说明关闭责任如何划分,并给出多发送方等待后统一 close 的迁移写法与排查清单。402 收藏 -
Go 1.27 支持具体类型声明泛型方法。给 Page[T] 增加 Map[U] 后,可把分页元素从模型类型映射为 DTO 类型,编译器负责推断与检查,同时统一保留总数、页码和页大小,并把转换错误明确返回。402 收藏 -
Go crypto/tls 用 CurveID 表示密钥交换组,CurvePreferences 决定显式支持范围。本文说明传统组、X25519 与混合后量子组的配置边界,并给出握手结果检查清单。402 收藏 -
Golang · Go教程 | 4星期前 | 并发 · go · 连接池 · net/http · HTTP客户端 · Go HTTP客户端 连接池 http.Transport Transport.Clone
Go 的 http.Transport.Clone 可以深拷贝导出配置字段,适合从一份基础 Transport 派生出连接池参数互不覆盖的客户端。本文区分配置快照、函数回调与运行时连接池,并给出可复用的隔离写法。402 收藏 -
Go runtime/trace 通过 NewTask 返回的 context 关联各阶段 WithRegion。原创示例说明跨 goroutine 传递、等待子任务、采集命令及墙钟区间与 CPU 时间的阅读边界。402 收藏 -
Go 里可以用带缓冲 channel 做轻量 semaphore,把令牌容量当作 goroutine 并发上限,再用 defer 归还令牌避免提前返回造成泄漏。本文从批量任务小项目出发,整理阻塞获取、可取消获取和 WaitGroup 收尾的写法。402 收藏 -
Go slog 通过 HandlerOptions 的 AddSource 把日志调用位置加入 TextHandler 或 JSONHandler 输出,本文说明 source 的生成、包装影响与生产取舍。402 收藏 -
Go jsontext 的 ReadToken 返回值可能依赖 Decoder 内部缓冲区,后续读取会让原始 token 失去长期有效性。本文说明 Token.Clone 的迁移边界与回归检查方法。402 收藏 -
Go TLS 握手出现证书主机名不匹配时,重点核对实际校验主机名、SNI 和证书 SAN;本文给出诊断命令、Go 配置示例以及域名和 IP 场景的修复边界。402 收藏 -
Golang · Go教程 | 2星期前 | 反射 · reflect · 标准库 · Go教程 · Go 反射 MapIter MapRange reflect.Value.SetIterValue map迭代
Go 反射遍历 map 时,可以用 reflect.Value.SetIterValue 把 MapIter 当前条目的值写入一个可写 Value。本文从目标 Value 的创建、MapRange 遍历到可赋值与 CanSet 边界,给出完整示例和选择建议。402 收藏