Go语言技术文章
-
通过导出配额示例说明 Go 错误包装、哨兵分类与类型提取,给出可判断错误链的完整代码,并解释 As 目标指针、包装契约与底层细节的公开边界。474 收藏 -
bytes.Buffer 的可用空间要看 Available,而不是只看 Cap。本文结合 Len、Cap、Available 和 Grow,说明如何估算当前缓冲区的剩余容量,以及读取、复用和扩容时的实际边界。474 收藏 -
Go iter.Seq2 的两个 yield 参数需要明确业务含义,回调 bool 则表示是否继续。通过原切片索引与任务值的完整示例,解释过滤编号、提前停止、Go 1.23 要求、回调兼容写法及闭包所有权边界。474 收藏 -
Go Cookie 不被浏览器保存,通常不是 Cookie 结构体失效,而是响应头没有及时写出,或 Domain、Path、Secure、SameSite、MaxAge 等属性不符合当前请求环境。本文用最小 net/http 示例拆分接收、存储和发送三层排查。474 收藏 -
Go jsontext.Decoder.PeekKind 可以查看下一个 JSON token 的类型而不推进读取偏移。本文说明如何根据 Kind 选择 ReadToken、ReadValue 或 SkipValue,并区分 KindInvalid、io.EOF 与对象数组结束标记。474 收藏 -
用MaxBytesReader限制Go HTTP请求体的实际读取字节数,识别MaxBytesError并返回413,说明完整读取、部分数据丢弃、Content-Length和JSON解析边界。474 收藏 -
Go strings.Cut 适合按第一次分隔符拆分字符串,并通过 found 区分未命中与合法空字段。本文用键值和协议片段说明三个返回值、重复分隔符、空输入以及与 Split、SplitN、CutLast 的选择边界。474 收藏 -
Go os.ReadDir(name) 会一次返回目录项;面对大目录时,可以打开目录并用 File.ReadDir(n) 分批读取。本文说明批量大小、DirEntry、io.EOF、Info 调用和 Close 错误的处理边界。474 收藏 -
Go xml.Decoder 返回解析错误时,可以用 InputOffset 取得当前输入流的字节偏移,再从原始 XML 截取附近窗口。本文说明偏移边界、Token 循环写法、字节切片安全处理和 Decode 场景下的注意点。474 收藏 -
runtime/metrics 结果为空时,先区分空的 Sample 切片、指标名称不在 All 中、Value.Kind 判断错误,以及直方图当前确实没有样本。本文给出一套可复用的读取与排查方式。474 收藏 -
用 Go 的 net/url.URL.ResolveReference 根据绝对 base URL 解析相对路径、根路径、查询和片段,重点说明目录尾斜杠、绝对引用和 JoinPath 的边界。474 收藏 -
Golang · Go问答 | 3天前 | 标准库 · Context · Go问答 · Go 优雅退出 context os/signal SIGTERM signal.NotifyContext os.Interrupt
把 Go 信号处理从 signal.Notify 和独立 channel 迁移到 signal.NotifyContext,用 Context 统一传播取消,并在任务结束后调用 stop 注销信号行为、释放关联资源。474 收藏 -
Go 的 plugin.Open 并不是所有平台都能使用。本文从支持范围、CGO 条件和 plugin: not implemented 出发,用接口隔离、build tag 与显式 fallback 设计一套兼容方案,并说明哪些加载错误不能被静默吞掉。474 收藏 -
Go slog.Logger.With 会返回带属性的新 Logger,不会改写原 Logger。本文用并发请求和测试场景说明共享字段污染的成因、检查方法、隔离写法与验收边界。473 收藏 -
解释 encoding/csv.Reader.ReuseRecord 的切片复用语义,演示批量读取时如何降低分配,以及需要长期保存记录时如何避免数据被下一次 Read 覆盖。473 收藏