Go语言技术文章
-
Go math/bits.ReverseBytes16 接收 uint16 并交换其中的两个字节,适合处理定长整数的字节顺序转换。本文说明它与 Reverse16 的区别,给出协议字段中的调用方式,并提醒不要把字节交换和 encoding/binary 的整体序列化混在一起。306 收藏 -
使用 Go runtime/metrics 读取 runnable、running、waiting 与 live goroutine 指标,区分近似值和总量,并用连续采样判断运行队列压力,避免把单次高点误判为泄漏或根因。306 收藏 -
Go io.SectionReader 可以把支持 ReaderAt 的数据源限制为一个固定字节区间。本文用一个文件片段读取场景说明 NewSectionReader、Read、ReadAt、Seek 和 Size 的关系,并解释为什么它不会推进底层共享对象的顺序偏移。306 收藏 -
Go os.Geteuid 返回当前进程的有效用户 ID。本文用一个跨平台示例区分有效 UID、真实 UID 与有效组 ID,说明 Unix 与 Windows 的返回差异,并解释为什么它不能单独充当权限授权依据。306 收藏 -
Go testing.T.Failed 返回当前测试是否已经失败,适合放在 t.Cleanup 中做最终诊断或选择性保留现场。本文说明它与 t.Error、t.Fatal、t.Run 返回值、子测试状态和 Skipped 的边界。306 收藏 -
在批处理拼接长字符串时,先按字节估算固定文本、记录和分隔符的总量,再调用 strings.Builder.Grow 预留容量。本文用一个可复用示例说明 Len、Cap、String、Reset 与 UTF-8 估算边界。306 收藏 -
Go unique.Make 可将重复字符串表示为可比较句柄,并通过 Value 恢复文本。本文给出标签计数最小示例,说明相等关系、回退路径与缓存边界。306 收藏 -
使用goquery Clone隔离文章子树修改,说明Remove返回值、Find匹配范围和CloneDocument区别,给出保留原文档的完整Go示例。305 收藏 -
用一个小型商品列表解析器说明 goquery Find 与 Filter 的核心区别:Find 从当前选择集向下查找后代节点,Filter 只在当前选择集中保留匹配节点,并给出嵌套列表、空结果和组合选择器的判断方法。305 收藏 -
reflect.TypeOf 读取的是接口值的动态类型。传入真正的 nil 接口时没有动态类型,因此返回 nil;本文结合 typed nil、TypeFor 和 ValueOf 说明反射代码的安全判断方式。305 收藏 -
Go exec.Cmd 同时读取 stdout 和 stderr 时,单路读取或提前 Wait 容易造成阻塞。本文解释 StdoutPipe、StderrPipe 与 Wait 的边界,并给出简单收集和并发分流两种处理方式。305 收藏 -
Golang · Go问答 | 2星期前 | goroutine · Context · go并发 · 取消 · Go Goroutine defer context WaitGroup cancel
Go 中 defer 只能在所属函数返回时执行清理,不能自动停止另一个 goroutine。本文用 context.Done、显式 cancel 和 WaitGroup 拆开取消信号、worker 退出与资源回收三个职责,说明周期任务和阻塞调用的排查边界。305 收藏 -
Go time.Duration 以纳秒整数保存时间间隔,Microseconds 返回 int64 微秒数。本文说明正数、负数和不足一微秒时的向零截断边界,并给出计时与超时判断中的使用方式。305 收藏 -
使用Go oggvorbis读取Vorbis注释头,解析TITLE、ARTIST、ALBUM等曲目字段。示例保留重复值与完整文本,说明接口选择、缺失标签、文件资源及输入位置的处理边界。305 收藏 -
Go 的 exec.Cmd.Env 遇到同名环境变量时,最终采用切片中最后出现的值。本文区分 nil 继承、显式环境、Cmd.Environ 追加覆盖、空值与 Windows 特殊边界,给出可直接套用的构造方式。305 收藏