Go语言技术文章
-
ssa.NewProgram 用 FileSet 和 BuilderMode 创建空的 SSA 程序容器。本文说明初始化写法、包注册与函数体构建的区别,并比较手动入口和 ssautil 辅助函数的适用条件。420 收藏 -
Go x/net/ipv4.PacketConn 将数据载荷、ControlMessage 与源地址分层返回。本文从 ReadFrom 和 WriteTo 的接口边界解释原因,并给出控制字段配置、接口选择和跨平台排查方法。420 收藏 -
区分JetStream有序读取与共享任务责任,说明durable pull consumer、显式确认、背压配置和业务幂等,并提供Go批次消费示例。420 收藏 -
围绕 Go sync.Pool 升级后命中率、对象身份和延迟变化,建立可重复的小实验,区分 API 契约、垃圾回收和业务所有权问题,并给出是否继续池化的判断清单。420 收藏 -
Go SetEscapeHTML(false) 适用于需要可读字符的独立 JSON 输出。通过完整示例区分字节表示与解析值,并说明 JSON 必要转义、末尾换行、二次编码及固定字节契约的边界。420 收藏 -
go/types.Checker.Files 要把源码作为同一个 Go 包的一部分来检查,因此不同 package 声明的文件不能混在同一个 Checker 中。本文区分包名、导入路径和外部测试包,给出增量检查与拆分上下文的排障方法。420 收藏 -
WithValue 使用私有定义类型键,可以隔离不同包的键身份。本文解释字符串冲突与别名误区,给出封装写入和读取函数的示例,并说明请求范围、派生上下文及缺失值边界。420 收藏 -
bytes.Buffer.Grow 不是越早调用越好。本文从容量、写入、Reset 和 Bytes 的真实关系出发,说明预留空间、复用缓冲区与避免长期保留大内存的边界。419 收藏 -
Golang · Go问答 | 2个月前 | HTTP服务 · net/http · Go问答 · Go net/http TimeoutHandler ErrHandlerTimeout return_after_timeout
从 Go net/http 源码拆解 TimeoutHandler 的 done、ctx.Done 和 timeoutWriter 边界,解释超时后日志、ErrHandlerTimeout 与测试辅助函数 return_after_timeout 应该如何区分。419 收藏 -
sync.Once 只保证初始化函数执行一次,不会替你重试或返回错误。本文用共享结果与错误状态封装初始化,让并发调用稳定拿到失败原因,并说明哪些情况应该改用显式重试。419 收藏 -
终端能运行而 Go os/exec 找不到程序,通常是 PATH、工作目录和绝对路径被混淆。本文用 LookPath、Cmd.Env 和 Cmd.Dir 拆开排查,并给出部署场景的稳妥写法。419 收藏 -
Go 的 httptest.NewServer 关闭后仍有连接,通常要分别处理 Server、Response.Body 和 Client/Transport。本文用最小测试示例说明读取关闭响应体、关闭服务端和回收空闲连接的正确边界。419 收藏 -
Go 类型断言如何限定接口范围?本文说明具体类型断言与接口类型断言的区别,演示 comma-ok、安全探测、最小接口和 type switch 的取舍。419 收藏 -
slices.DeleteFunc 会原地压缩切片,并清零新长度之后的尾部元素,从而断开被删除元素对对象的引用。本文用指针切片示例说明它的边界。419 收藏 -
Golang · Go教程 | 2个月前 | 标准库 · regexp · 字符串处理 · Go教程 · 命名捕获组 正则替换 Go regexp ExpandString regexp.Expand FindSubmatchIndex
用 Go regexp 的 Expand 和 FindSubmatchIndex 把匹配文本转换成结构化输出,覆盖命名与数字引用、字面美元符号、批量追加和未匹配分组边界。419 收藏