Go语言技术文章
-
Golang · Go问答 | 17小时前 | 并发 · pprof · 故障排查 · Go问答 · Go 1.27 · Go goroutine泄漏 net/http/pprof goroutineleak runtime/pprof
Go 1.27 将 goroutineleak profile 作为正式能力,但它不是所有阻塞协程的万能扫描器。本文从 runtime/pprof 的可达性判定出发,拆开检测到的泄漏、全局对象造成的盲区,以及 net/http/pprof 入口的核对方式。248 收藏 -
Go 1.27 针对小对象的专用内存分配器可降低分配成本,但它不会替服务端回收仍被引用的对象。本文用请求缓冲、缓存切片和 goroutine 三个边界,说明如何判断分配变快与对象活得过久是两件事。463 收藏 -
用 Go 标准库 log/slog 的 LogValuer 隐藏请求凭据,厘清 WithAttrs 预处理与 Value.Resolve 展开的边界,避免把密码和令牌写进结构化日志。247 收藏 -
Go 通过 cgo.Handle 把 Go 值暂存给 C 侧时,关键不是把指针强行塞过去,而是明确句柄的创建、回调取值和 Delete 释放边界。本文用一个回调桥接例子说明生命周期、并发与异常清理。308 收藏 -
Golang · Go问答 | 1天前 | 字符串 · 标准库 · golang · 迭代器 · 边界处理 · Go 文本解析 iter.Seq Unicode 空白 strings.FieldsSeq
Go 1.24 新增的 strings.FieldsSeq 返回 iter.Seq[string],按 unicode.IsSpace 识别连续空白并逐项产生字段。本文对比 Fields,说明空文本、Unicode 空白、提前停止和结果保存的边界。494 收藏 -
用一个可运行的 Go 客户端示例验证 NewRequestWithContext 的构造顺序、取消传播和 nil context 边界。296 收藏 -
sync.Map.Range 适合遍历某个时刻可见的键值,但不能把回调结果当成并发集合的稳定快照。本文拆开 Store、Delete 与 Range 同时发生时的可见性边界,并给出需要一致结果时的替代方案。344 收藏 -
Go 的 log/slog.Attr.Equal 适合做日志属性去重和断言,但组属性、数值类型与空值的比较边界容易被忽略。本文从字段和值的关系出发,给出紧凑写法和检查要点。248 收藏 -
Golang · Go教程 | 1天前 | 网络编程 · go · HTTP协议 · net/http · 兼容性 · Go http/2 HTTP/1 http.Protocols SetHTTP1 SetHTTP2 ALPN
Go 1.24 的 http.Protocols 让 Server 和 Transport 能显式声明 HTTP/1、TLS 上的 HTTP/2 以及明文 HTTP/2。本文从一个需要固定协议的服务场景出发,拆解 SetHTTP1、SetHTTP2 的配置位置、ALPN 边界和兼容检查。212 收藏 -
Go 1.23 引入的 slices.Values 可以把切片暴露为 iter.Seq。本文用同一段可运行示例验证 range 消费、空切片和提前 break 的行为,并说明它与直接遍历切片的边界。487 收藏 -
Go 1.23 引入的 slices.Sorted 会收集迭代器值并返回新的有序切片。本文用同一段可运行代码核对排序结果、原切片是否被修改以及空输入行为。288 收藏 -
用同一段 Go 示例生成 RSA、ECDSA、Ed25519 和 X25519 公钥,验证 MarshalPKIXPublicKey 与 ParsePKIXPublicKey 的返回类型、接口断言和 DER 格式边界。408 收藏 -
用独立 FlagSet 对比 ContinueOnError、ExitOnError 与 PanicOnError,演示如何让命令行错误可测试、可记录并保留稳定输出。358 收藏 -
用 Go text/template/parse 运行同一份示例,检查 ActionNode、Pipeline 节点和语法错误位置,给模板静态检查留下可核对的证据。269 收藏 -
用同一段 Go 示例验证 fmt.Appendf 的追加语义、容量增长与格式占位符边界,给需要构造日志或协议字节流的代码一个可复用的写法。401 收藏