Go语言技术文章
-
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问答 | 3星期前 | csv · Go问答 · 错误排查 · 数据导入 · FieldsPerRecord LazyQuotes ParseError Go encoding/csv CSV引号错误
围绕 Go encoding/csv.Reader 的 LazyQuotes 参数,对比严格解析和引号容错的边界,说明 ParseError、FieldsPerRecord、部分记录与行列坐标如何组成可追踪的 CSV 导入策略。146 收藏 -
context.AfterFunc 返回的 stop 为 false 时,可能是回调已经启动,也可能是它此前已经被停止。本文用最小代码说明两种情况的边界,以及如何等待回调真正完成。146 收藏 -
Go regexp.Longest 会把整体匹配从最左优先改成最左最长,捕获组因此可能随整体候选一起变化。本文用最小示例解释选择规则、POSIX 差异与并发配置边界。146 收藏 -
Go 测试使用 t.TempDir 创建临时目录时,目录会在当前测试及其子测试全部结束后自动清理。本文拆解清理时机、并行子测试、路径拼接和失败复现边界,给出可直接回归的测试写法。145 收藏 -
Go map 直接读取时,缺失键和真实的零值会得到同一个结果。本文用 ok 语法、comma-ok 判断和 nil map 示例,说明如何区分存在性、避免误判,并把判断边界写进函数接口。145 收藏 -
atomic.Value 的 Store 参数虽然是 any,但同一个 Value 首次写入后就锁定具体类型。本文用最小复现定位值类型、指针类型和 nil 导致的 panic,并给出稳定快照的修复写法。145 收藏