Go问答技术文章
-
Go url.ParseQuery 看起来不生效,通常不是函数没有解析,而是传入了完整 URL、忽略了 error,或把多值参数当成单值读取。本文从输入格式、url.Values、多值参数和异常编码四个边界给出排查与封装写法。118 收藏 -
Go http.Cookie 不生效时,先区分响应头 Set-Cookie 与请求头 Cookie,再检查 CookieJar、Path、Domain、Secure、SameSite、写入时机和字段合法性。361 收藏 -
澄清 http.Cookie 无需关闭,按响应体、Transport、CookieJar、业务缓存和服务端会话区分资源生命周期,并给出一次请求内关闭响应体的写法。250 收藏 -
Golang · Go问答 | 1星期前 | 标准库 · HTTP · Cookie · Go问答 · Go HTTP请求头 http.Cookie Cookie.String Cookie.Valid
Go http.Cookie 出现空结果时,先区分 String 返回空字符串、Valid 返回错误和 Request.Cookies 返回空切片,再检查 nil、Name、请求头格式与 Cookie 数量边界。407 收藏 -
Go net.Dialer 只负责建立连接,成功返回后的 net.Conn 仍由调用方关闭。本文用生命周期日志、goroutine profile、文件描述符趋势和 httptrace 区分连接未关闭、读写卡住与 HTTP 连接池复用,并给出可落地的修复边界。241 收藏 -
Go net.Dialer 返回空连接时,先分清空地址、地址格式、名称解析和连接失败四个阶段。本文用 DialContext、SplitHostPort、Resolver 与错误链说明如何定位边界输入。343 收藏 -
从 HTTP 客户端接线、连接复用、超时作用范围和代理及自定义 TLS 分支定位 net.Dialer 看似不生效的原因,并提供客户端构造示例。279 收藏 -
Go io.ReadFull 用 n 和 err 表示固定长度读取是否完成:空读到 EOF、部分读取到 ErrUnexpectedEOF,以及底层读取错误需要分开处理。本文给出稳定的判别代码和协议头读取边界。432 收藏 -
bufio.Writer.Available 返回内部缓冲区尚未使用的字节数。本文区分 Size、Buffered、Available 和 Flush,说明写入前后如何判断剩余空间、为什么大写入不等于必然失败,以及 AvailableBuffer 的使用边界。194 收藏 -
Go bufio.Scanner 的空结果可能来自空输入、空行、空白词、超长 token 或自定义分割规则。本文用最小实验区分 Scan、Text 和 Err 的边界,并给出 Buffer 与排查清单。368 收藏 -
Go 的 unicode.IsDigit 判断的是 Unicode 十进制数字字符。本文用 rune 遍历示例说明它与 ASCII 字节判断、strconv 数值解析和 unicode.IsNumber 的区别,帮助你处理多语言文本中的数字字符。208 收藏 -
Go token.File.LineStart 接受 1-based 行号并返回 token.Pos。本文用最小示例说明如何建立行表、把行首位置转换为文件内字节偏移,并避开无效行号、UTF-8 与 CRLF 带来的位置误判。459 收藏 -
Go 的 color.RGBA 与 Color.RGBA() 都遵循预乘 Alpha 语义,透明度较低时读取到的 RGB 会随之变小。本文解释返回值、NRGBA 与 NRGBAModel 的差异,并给出 image.Image 通用读取时的选择方法。451 收藏 -
Go 的 FindAllStringSubmatchIndex 返回的是按匹配分组排列的字节索引矩阵。本文用 nil、[-1,-1] 和 [k,k] 三个结果区分整体无匹配、子表达式未参与和空字符串匹配,并给出安全切片与 n 参数的排查写法。463 收藏 -
runtime.SetFinalizer 不是定时器,也不保证在进程退出前执行。本文从对象可达性、闭包捕获、引用环、GC 与单一 finalizer 队列几个方向解释对象未及时回收,并给出 KeepAlive、显式 Close 与 AddCleanup 的选择边界。191 收藏