Go语言技术文章
-
Go regexp.Regexp 返回空字符串不一定是没有匹配,边界断言和可选量词可能只匹配一个位置。本文用 FindStringIndex 区分 nil、零宽匹配和真实文本,并说明多行模式与中文 边界的处理方式。309 收藏 -
Go template.Template 看起来不生效,通常不是模板对象失效,而是 Parse、Execute、命名模板、数据字段或 FuncMap 的边界没有处理好。本文按最小代码、文件模板和并发复用逐层排查,并保留真实错误信息。451 收藏 -
区分 Template 普通对象、FuncMap 闭包、模板缓存及输出文件的生命周期,提供文件关闭示例,并按句柄、缓存和引用保留定位问题。181 收藏 -
Go template.Template 得到空结果时,先分清空根模板、执行了错误的命名模板、空管道和缺失 map 键。本文用 DefinedTemplates、Lookup、ExecuteTemplate 与 missingkey 给出可复现的排查路径。106 收藏 -
Go 的 sql.Rows 出现连接池等待或资源未释放时,先确认 Rows.Close 与 Rows.Err 的生命周期,再结合 DB.Stats、goroutine 和驱动日志定位真正的拥有者。本文给出可复用的代码与排查顺序。256 收藏 -
Go reflect.MapIter.Reset 传入 reflect.Value{} 可以解除迭代器对原 map 的引用,但不会清空 map 或强制垃圾回收。本文说明遍历结束后的脱钩位置、迭代器复用条件,以及其他引用仍存活时的边界。436 收藏 -
按 QueryContext、Next、Scan、Err 和 Close 定位 sql.Rows 使用问题,说明空结果、NULL 扫描、提前停止及连接池生命周期,并给出完整消费函数。429 收藏 -
url.ParseQuery 只负责把 URL 编码查询串解析成内存中的 url.Values,不会打开文件、连接或响应体。本文用错误返回值、资源拥有者和运行时指标拆分排查路径,定位真正未释放的请求体、响应体、文件、连接或 goroutine。399 收藏 -
Go url.ParseQuery 遇到空串、未转义分号或非法百分号转义时,可能得到空的或部分填充的 url.Values。本文解释输入契约、err 与有效项保留规则,并给出生产代码中的判断方式。500 收藏 -
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 收藏