-
Go os.CopyFS 可以直接把 embed.FS 这样的嵌入文件系统复制到磁盘。本文从批处理场景说明如何减少手写遍历、整文件读取和重复临时对象,并处理已存在文件、权限错误与复制边界。
-
Go 经过 HTTP 代理访问 HTTPS 时,代理需要的字段必须放在 CONNECT 握手请求中。本文区分 ProxyConnectHeader、GetProxyConnectHeader 与目标请求 Header,说明静态配置、动态回调、代理认证和错误边界。
-
Go crypto/tls 的 InsecureSkipVerify 会同时跳过证书链和主机名校验。本文说明它的中间人风险,并给出 RootCAs 与 VerifyConnection 的安全替代方案。
-
Go 的 exec.Cmd 可以通过 ExtraFiles 把父进程已经打开的管道或套接字传给子进程。关键规则是 ExtraFiles[i] 在子进程中从文件描述符 3+i 开始,而不是沿用父进程原来的编号。
-
Go 向已关闭通道发送会 panic,增大缓冲、状态探测和 sync.Once 都不能保证安全。本文给出多发送者由协调者等待后关闭的完整示例,并区分取消通知、数据结束与完成信号。
-
Go compress/flate 的输入相同并不保证压缩字节相同。本文解释压缩级别、字典、Flush、写入边界和 Go 版本如何影响编码,并给出需要字节级稳定时的固定条件。
-
使用 go/types 做 Go 静态分析时,Info.Types 只能回答表达式类型。本文用原创示例说明如何初始化 Info.Selections,找到嵌入字段最终对应的 Obj,并用 Index、Recv、Indirect 解释选择路径。
-
Go HTTP Server 读取请求体后响应变慢,常见原因不是 ResponseWriter 本身,而是客户端上传尚未完成、处理器在等待 Request.Body,或 HTTP/1.x 连接仍有未消费的数据。本文用一个带大小限制的上传接口拆分耗时,说明正确读取顺序、连接复用边界和日志定位方法。
-
Go runtime/metrics 提供 automatic、forced、total 三条 GC 周期计数。本文用 metrics.Read 读取它们,并通过相邻采样的增量判断 GC 来自运行时自动触发还是应用主动触发。
-
Go fsnotify 同时提供 Events 与 Errors 两个通道。本文从事件正常但错误丢失的排查场景出发,说明如何用一个 select 同时消费两个通道,区分关闭、监听错误与事件位掩码,并拆开 NewWatcher、Add、消费和 Close 的生命周期边界。
-
Go malgo 结束播放时要先处理 Device,再释放 Context,最后释放 InitContext 返回的 AllocatedContext。本文按资源所有权说明 Stop、Uninit、Context.Uninit 与 Free 的边界,并给出带错误分支的清理模板。
-
Go archive/zip 里 Writer.Close、OpenReader.Close 和条目 ReadCloser 不是同一个关闭边界。本文用写入与读取示例说明如何收口资源,并在完整读取条目后捕获 zip.ErrChecksum、io.ErrUnexpectedEOF 等错误。
-
Go maphash.Hash.Clone 可以从已有输入的中间状态复制出独立的 hash.Cloner。本文说明如何保留共同前缀、分别追加后缀,理解 Clone 返回值、错误处理、版本要求与并发边界。
-
go/types.Info.InitOrder 不是简单按源码文件排序:有依赖的包级变量按拓扑关系排列,互不依赖的变量才回到源码位置顺序。本文用一个小型 AST 分析器拆开文件输入顺序、依赖关系和工具输出边界。
-
Go 的 encoding/json 把 JSON 数字写入 int 时,如果数值超出目标类型范围,会返回 UnmarshalTypeError,而不是自动截断或安全放大。本文从溢出边界、错误定位、字段设计和 UseNumber 四个角度说明怎样处理。