Go语言技术文章
-
Go 的 string 按字节保存,按字节截断中文或表情可能切入 UTF-8 编码中间。本文用 unicode/utf8 设计安全的字节上限切分函数,并说明非法输入、rune 计数和性能边界。200 收藏 -
Go 处理 jsonnull 时,字段缺失、JSON null、空数组和有值数组不能只用 len 判断。本文用最小复现、Nullable 状态和 PATCH 分支说明如何定位空值错误。287 收藏 -
Go 中排查 unicode/utf8 非法序列时,先用 Valid 判断整体字节,再用 RuneError 与 size=1 定位具体偏移,并区分截断、错误编码和真实替换字符。243 收藏 -
Go 的 encoding/json 会把 JSON null 解成 nil 切片,把空数组解成非 nil 的零长度切片。本文用可复制示例说明字段缺失、null、[] 的区别,以及如何在接口输出时稳定选择 null、[] 或省略字段。266 收藏 -
讲清 Go 中 string、byte、rune 与 UTF-8 字节的区别,演示 DecodeRuneInString 的读取方式,以及 ValidString 和 RuneError 的异常处理。112 收藏 -
Golang · Go问答 | 2星期前 | 连接池 · HTTP客户端 · Go问答 · Go HTTP客户端 连接池 http.Transport CloseIdleConnections Transport生命周期
Go 中限定 http.Transport 生命周期,重点是把请求、Client 和 Transport 分层:请求短生命周期,Transport 随业务组件长期复用;按代理、TLS 或上游配置拆分实例,切换和退出时只清理空闲连接。262 收藏 -
strings.CutPrefix 不只是删除前缀,更重要的是用 found 明确控制后续分支。本文从协议识别、多个业务前缀、空前缀和旧 Go 版本兼容几个边界,整理一套可复用的判断写法。375 收藏 -
Golang · Go问答 | 2星期前 | 连接池 · HTTP客户端 · Go问答 · TIME_WAIT httptrace http.Transport Go transport Go端口增长 HTTP连接复用 CLOSE_WAIT
Go 出站端口增长要先区分 ESTABLISHED、TIME_WAIT 和 CLOSE_WAIT,再用 httptrace 判断 Transport 是否复用。本文从响应体收尾、长期复用 Transport、连接边界和 socket 检查四个方面给出排查方法。297 收藏 -
Go strings.CutPrefix 返回 found=false 时,优先检查前缀是否真的位于字符串开头、大小写和空格是否一致,并正确处理未匹配时原字符串会原样返回的规则。492 收藏 -
Golang · Go问答 | 2星期前 | 性能排查 · HTTP客户端 · Go问答 · MaxIdleConnsPerHost Go连接池 Go transport http.Transport连接复用 HTTP keep-alive
Go http.Transport 默认会缓存连接供后续请求复用,但前提是 Transport 长期复用、响应体正确收尾,并按上游数量配置空闲连接。本文给出 Client、Transport、Body 和 httptrace 的判断方法。268 收藏 -
用 Go strings.CutPrefix 读取并移除字符串前缀,掌握 after、found 两个返回值,以及未匹配、空前缀、大小写和 Unicode 等边界。177 收藏 -
Golang · Go问答 | 2星期前 | Context · HTTP客户端 · Go问答 · Go请求超时 Go clienttimeout http.Client Timeout Go客户端超时 Transport阶段超时
本文解释 Go http.Client.Timeout 的总时限范围,并用请求级 context 与 Transport 阶段参数区分不同客户端边界。338 收藏 -
Go bytes.Reader 同时支持顺序读取、绝对偏移读取和定位。本文区分 Len、Size、ReadAt、Seek 的职责,并用 io.SectionReader 固定下游可见的缓冲区间。465 收藏 -
Go 请求同时设置 http.Client.Timeout 和 context.WithTimeout 时,最早到期的边界会取消请求。本文用截止时间、错误类型和受控实验判断超时来源,并给出生产环境的配置取舍。465 收藏 -
解释 Go bytes.Reader 中 Len、Size、Read、ReadAt、ReadRune、Seek 和 Reset 的关系,帮助定位读取后长度变化与游标位置不一致的问题。184 收藏