Go教程技术文章
-
Golang · Go教程 | 1星期前 | 标准库 · 错误处理 · IO · Go教程 · Go eof io.Pipe CloseWithError PipeReader PipeWriter.Close
Go io.Pipe 写端正常 Close 后,读端读完剩余数据会收到 io.EOF;如果生产过程失败,应使用 CloseWithError 传播真实错误。本文对比三种关闭入口,给出带错误处理的读取循环和关闭边界。321 收藏 -
slices.BinarySearchFunc 查不到值时,最先要检查的不是二分算法,而是比较函数是否按 func(E, T) int 返回“切片元素相对目标”的结果,以及切片是否按同一规则有序。本文用结构化切片说明方向、边界和插入位置。321 收藏 -
Go maps.Keys 返回无序键迭代器;文章用原创示例区分切片收集与排序,说明空 map、旧版本替代写法,以及结构体键完整比较规则,帮助得到排列可重复的键列表。320 收藏 -
Go netip.Addr.Is4In6 专门判断 IPv4-mapped IPv6 地址,也就是 ::ffff:0:0/96。本文结合输入解析和请求来源规范化,说明它与 Is4、Is6、Unmap 的关系,以及 IPv4、映射 IPv6、普通 IPv6 和无效地址的处理边界。320 收藏 -
通过保留证书验证的Go TLS诊断示例解释ALPN配置与读取时机,定位空协议、有效配置、代理终止及应用实现不匹配问题。320 收藏 -
Go sort.Interface 稳定排序应使用 sort.Stable,切片可用 SliceStable;通过整数优先级案例说明严格比较、重复键等价关系、原始次序与自测方法。319 收藏 -
Go errors.As 可以沿着 %w 形成的错误链查找目标类型,并把匹配到的错误写入目标变量。本文说明多层包装、指针目标、首次匹配和自定义 As 方法的正确用法。319 收藏 -
Go 的 crypto/ecdsa Sign 不会把摘要长度简单地强制要求为曲线阶长度;摘要过长时会按曲线阶位数截断。本文用一个小型签名器说明如何显式检查、调用 Sign 并配套验证。319 收藏 -
Go humanize 的 BigComma 可以把 math/big.Int 转成带千位分隔符的十进制文本。本文从超出 int64 的字符串解析开始,说明正负数、零值、解析错误和 BigCommaf 的适用边界。319 收藏 -
使用 Go oggvorbis 解码 OGG/Vorbis 文件时,先读取声道数,再按“目标帧数×声道数”分配 float32 缓冲区,把 Read 返回的交错样本值换算为完整音频帧后分批消费。319 收藏 -
Go bitset 枚举置位索引时,Go 1.23 及以上优先使用 EachSet 配合 range,旧版本使用 NextSet 循环;本文还说明 NextSetMany、Count、Len、空集合和并发访问边界。319 收藏 -
Go filepath.Rel 在 Windows 上已支持盘符与 UNC 共享卷名。本文用完整绝对路径封装说明同卷计算、跨卷错误、盘符相对路径与 Linux 处理 Windows 路径文本的区别。319 收藏 -
说明 Go time.AfterFunc 的 Stop 返回值、回调竞态及 nil 通道边界,给出一次性取消并等待包装器,用 Context 请求退出、done 确认完成,避免把停止触发误当作终止回调。318 收藏 -
Go compress/gzip 的 Reader 会在创建或 Reset 后暴露 gzip Header。本文说明怎样读取 Header.Name、为什么文件名可能为空,以及多成员 gzip、完整读取和校验关闭的边界。318 收藏 -
Golang · Go教程 | 2星期前 | goroutine · HTTP服务 · pprof · Go教程 · Go goroutine泄漏 Go诊断 net/http/pprof goroutine profile pprof.Handler
用 Go net/http/pprof 暴露 goroutine 诊断入口时,关键不是把 /debug/pprof/ 直接公开,而是隔离监听器、自定义 mux、限制访问边界并记录采集动作。本文给出 goroutine profile 的最小接入方式、seconds 参数的使用边界和安全收尾清单。318 收藏