Go问答技术文章
-
Go 的 Location 会影响时间的构造解释和展示,但不等于改变实际时间点。本文说明 Equal、Before、After 与 == 的区别,并处理 ParseInLocation、UTC、序列化和单调时钟的常见边界。451 收藏 -
Go 服务器调用 Shutdown 后仍可能因主协程提前退出、排空上下文已取消或外部期限到达而截断请求。通过原创服务示例拆解退出顺序、超时强制关闭和依赖收尾。451 收藏 -
Go runes.ReplaceIllFormed 会将非法 UTF-8 字节替换为 U+FFFD。本文说明字节变化与无损解码的区别,给出原始副本和显示文本分离的示例,并解释批量与分块处理限制。451 收藏 -
Go groot 的 File.Close 会让文件失去 I/O 能力,但不会自动清空调用方已经保存的普通值。本文区分已解码对象、键元数据和仍依赖文件的调用,给出关闭前复制数据的写法。451 收藏 -
Go runtime.LockOSThread 只适用于依赖线程局部状态的操作系统服务或非 Go 库调用。本文说明判断条件、成对解锁、专用锁定 goroutine 以及不能恢复线程状态时的退出边界。451 收藏 -
Go httptrace.DNSDone 回调里的 Err、Addrs 和 Coalesced 分别表示什么?本文从请求上下文接入 ClientTrace,说明如何读取 DNS 阶段错误、区分最终请求错误,并处理回调并发与空地址列表。451 收藏 -
Go 的 color.RGBA 与 Color.RGBA() 都遵循预乘 Alpha 语义,透明度较低时读取到的 RGB 会随之变小。本文解释返回值、NRGBA 与 NRGBAModel 的差异,并给出 image.Image 通用读取时的选择方法。451 收藏 -
Go database/sql Tx 提交后查询不一致时,分开记录事务内读取、Commit回执与事务外新查询,核对查询入口、错误阶段、数据源和主键条件,避免误判提交失败或盲目重试。450 收藏 -
Go html/template 会按 URL 上下文过滤动态 javascript: 协议,并可能输出 #ZgotmplZ。本文解释过滤原因、template.URL 的安全边界,以及把点击行为改成普通链接或严格 allowlist 的做法。450 收藏 -
Go HTTP 请求返回 EOF 时,先按 Client.Do、Response.Body 读取和 JSON 解码三个阶段定位,再结合状态码、正文长度和接口契约区分服务端连接提前结束、空响应、传输截断与解析失败。450 收藏 -
Golang · Go问答 | 3星期前 | 错误处理 · IO · Go问答 · 字节偏移 io.Seeker Go strings.Reader Reader.Seek ErrInvalidWhence
strings.Reader.Seek 的 whence 不是任意整数,只能使用 io.SeekStart、io.SeekCurrent 或 io.SeekEnd。本文用字节偏移示例区分 ErrInvalidWhence、负位置和超过末尾三种情况。449 收藏 -
Go 的 Request.WriteProxy 面向 HTTP 代理写出请求,会在请求行使用包含 scheme 和 host 的绝对 URI;本文区分 Write、WriteProxy、URL 与 RequestURI,给出代理调试时的排查思路。449 收藏 -
解释 goavro NativeFromBinary 返回剩余字节的含义,区分单条 datum、连续记录、传输帧和 OCF 容器,并给出生产排障与边界检查方式。449 收藏 -
Go 项目出现 vendor inconsistent dependencies 时,通常是 go.mod 已变更而 vendor/modules.txt 仍是旧清单。本文按模块图、go mod vendor 和离线构建三个边界,给出恢复一致的排查顺序。449 收藏 -
Go HTTP Range 返回长度不对时,常见根因不是一个字段,而是区间闭端点、文件 Seek 大小、压缩解码和自定义响应头互相错位。本文按服务端、标准库和客户端三层给出判断与修复方式。449 收藏