Go语言技术文章
-
Golang · Go问答 | 2个月前 | goroutine · Context · 超时控制 · Go问答 · Go Goroutine 超时控制 context.WithTimeout 取消信号 协程泄漏 ctx.Done
context.WithTimeout 只会在到期后关闭 Done 通道并返回取消原因,不会直接停掉 goroutine。Go 代码要把 ctx 传进阻塞调用,并在 select、循环和清理逻辑里主动响应取消信号。147 收藏 -
Golang · Go问答 | 1个月前 | 工具链 · go语言 · Go教程 · 版本升级 · 代码重构 · Go 1.26 go fix modernizer 代码升级 new 表达式 Go 代码迁移
Go 1.26 重写了 go fix,把它从旧式修复命令变成基于 go/analysis 的 modernizer 工具。本文用一个含有可选字段和自定义 newInt 函数的 Go 模块,演示如何预览建议、限定改动范围、检查 go.mod 版本并完成回归。147 收藏 -
用 log/slog 给请求日志补 request_id 时,WithAttrs 适合固定上下文,Handler 包装适合动态注入。本文用一段可运行示例说明两者的边界、并发安全和验收方法。147 收藏 -
Go regexp 的 FindAllString 适合一次拿到全部匹配,但重复匹配、空匹配和 n 参数经常让结果数量出乎意料。本文用可运行示例拆解扫描游标与边界,并给出限制匹配次数的可靠写法。147 收藏 -
Go 的 os.Getenv 无法区分环境变量未设置和显式空值,本文用 os.LookupEnv 保留 exists 状态,并给出默认值、校验和测试的处理方式。147 收藏 -
Go http.Client 默认最多连续跟随 10 次重定向。本文用 CheckRedirect 和 len(via) 设置业务上限,并比较返回错误与保留最后一次 3xx 响应两种处理方式。147 收藏 -
用 Go encoding/xml 的 ,attr 标签把 XML 属性映射到结构体,说明指针空值、any,attr 扩展属性、嵌套节点和 Marshal 双向验收边界。147 收藏 -
讲清 Go hash.Hash 复用时 Reset、Write、Sum 的状态边界,用一个串行摘要计算器避免上一条输入串入下一条结果。147 收藏 -
讲清 Go GOPROXY 逗号与竖线回退差异,配置 GOPRIVATE、GONOSUMDB,并用 .netrc、GOAUTH 和 Git 凭据处理私有模块认证。147 收藏 -
Golang · Go问答 | 2个月前 | golang · 消息队列 · 性能优化 · websocket · 高并发 · Go WebSocket广播 Go慢客户端 WebSocket发送队列 Go Hub分片 WebSocket背压
Go WebSocket 广播卡顿,常常不是 CPU 不够,而是一条慢连接把广播路径堵住了。本文从一个房间广播现场出发,说明为什么要给每个客户端独立发送队列、如何确定队列满时的业务策略,以及何时需要按房间分片 Hub,并给出可观测的检查项。146 收藏 -
用 Go 标准库 netip.Prefix 判断 IP 是否属于网段,拆开 ParsePrefix、Masked、Contains 和 IPv4/IPv6 边界,给出可直接运行的校验代码。146 收藏 -
Go 1.24 新增的 crypto/rand.Text 适合生成密钥、令牌等随机文本。本文从 rand.Text 的内部调用链出发,说明 RFC 4648 Base32 字符集、固定长度、128 位随机性与错误处理边界。146 收藏 -
slices.Replace 会在原切片的底层数组上替换 s[i:j],但替换项数量变化时结果长度、容量和尾部清零规则都会变化。本文用一个可运行的小实验拆开它的索引边界、共享数组和收缩后的内存安全行为。146 收藏 -
Go 的 netip.ParseAddr 能解析普通 IPv6,但带有 %eth0 这类区域标识的地址还要看输入格式与后续用途。本文用最小代码说明 zone 的保留边界、Addr 与 AddrPort 的区别,以及监听和日志场景如何避免误判。146 收藏 -
Golang · Go问答 | 2星期前 | csv · Go问答 · 错误排查 · 数据导入 · FieldsPerRecord LazyQuotes ParseError Go encoding/csv CSV引号错误
围绕 Go encoding/csv.Reader 的 LazyQuotes 参数,对比严格解析和引号容错的边界,说明 ParseError、FieldsPerRecord、部分记录与行列坐标如何组成可追踪的 CSV 导入策略。146 收藏