Go语言技术文章
-
Go 的 unicode.IsNumber 判断的是 Unicode 数字类别 N,不等于只判断 0 到 9,也不等于能识别所有中文汉字数字。本文对比 IsNumber、IsDigit 与汉字数字的边界,并给出按业务规则筛选 rune 的写法。422 收藏 -
Go sync.Cond 的 Signal 只是唤醒提示,不代表共享条件已经成立,也不会保存无人等待时的通知。本文用队列示例说明为什么 Wait 必须在持锁的 for 循环中重新检查状态,以及状态修改、Signal 和 Broadcast 的配合边界。422 收藏 -
Go encoding/xml 的 InputOffset 返回当前解析器的字节偏移,既是最近返回 token 的结束位置,也是下一个 token 的起始位置。本文用流式 token 记录和错误上下文示例说明调用时机、字节与行列的区别,以及 UTF-8 和 EOF 边界。422 收藏 -
用 Go Doublestar 的 GlobWalk 按 ** 模式遍历 fs.FS,在回调里处理文件、跳过目录并传播错误;同时比较 GlobWalk、Glob 和 FilepathGlob 的适用边界。422 收藏 -
Go Humanize 的 Bytes 和 IBytes 适合把字节数转成可读文本,但文本排序会受数字位数和单位影响。正确做法是保留原始字节数按数值排序,旧字符串则先用 ParseBytes 转回统一数值。422 收藏 -
Go 1.21 之后,go 命令可以按项目要求自动切换工具链。本文用 GOTOOLCHAIN=local 固定当前捆绑版本,说明环境变量优先级、go.mod 约束、local 与 auto 的差异,以及更高版本要求下如何处理。422 收藏 -
本文围绕 Go httptrace.PutIdleConn 解释连接回收到 Transport 空闲池时的 nil 与错误信号,并对比 DisableKeepAlives、响应体关闭和 HTTP/2 下的判断边界。422 收藏 -
bytes.CutPrefix 同时返回裁剪后的字节视图和 found 标志。本文用消息头示例区分空输入、空前缀、未匹配前缀与空载荷,并说明异常分支和切片生命周期。422 收藏 -
net.Dialer KeepAlive 只负责 TCP 层的保活探测,不会替代 HTTP 连接池的空闲回收配置。本文用 Go 示例区分 KeepAlive、IdleConnTimeout 和请求超时,并展示批处理里复用 Client、Transport 与 io.CopyBuffer 缓冲区的写法。422 收藏 -
Go 读取 CSV 时,FieldPos 可以报告最近一条记录中字段的起始行和字节列;配合 ParseError 与字段边界检查,就能把坏行日志定位到可处理的位置。421 收藏 -
Golang · Go问答 | 2星期前 | 接口 · 标准库 · IO · 性能 · Go问答 · Go Writer 字符串写入 WriteString io.StringWriter io.WriteString
Go 的 io.StringWriter 用一个 WriteString 方法描述字符串写入能力。本文说明 io.WriteString 的优先分发规则、如何为自定义 Writer 增加 WriteString,以及迁移时的返回值、错误和兼容边界。421 收藏 -
Go 实验性 simd 运算应按 Len 动态分块,并单独处理不足一向量的尾部。本文以 uint32 切片加法说明实验构建、宽度测试、数据契约与标量回退,避免把固定寄存器宽度写进可移植代码。421 收藏 -
讲清 Go 1.27 net/http 如何在 HTTP/2 服务端接收并处理 RFC 9218 客户端优先级信号,说明 DisableClientPriority 的默认行为、适用条件和排查方法。421 收藏 -
介绍Go bitset通过MarshalBinary和UnmarshalBinary编码恢复位集合,解释逻辑长度、内部字数组和字节序的区别,并提供流接口与错误处理示例。421 收藏 -
Go 中 crypto/rand 用于令牌、密钥和不可预测的随机值,math/rand 用于模拟、抽样、洗牌和可复现测试。本文用选择清单、代码示例和迁移边界说明两者如何分工。421 收藏