Go教程技术文章
-
介绍 Go Colly 使用 colly.Context 在 OnRequest、OnHTML、OnResponse 和 OnError 之间传递请求级业务信息,说明 Request.Visit 的继承、Clone 的隔离边界,以及与标准库 context.Context 的职责区别。389 收藏 -
用公共事件信封承载 Kind 与 json.RawMessage,先解析公共字段,再把动态 payload 分流到具体 Go 结构体,并处理未知类型、空载荷和兼容性边界。387 收藏 -
用 Go 1.27 实验性 simd API 编写跨 amd64、arm64 与 wasm 的向量代码,覆盖向量长度、尾段处理、模拟路径和 archsimd 适配边界。387 收藏 -
通过命名切片调用泛型过滤函数后类型退化的问题,讲清 S ~[]E 的含义、类型推断、返回 S 的实现方式,以及 nil、底层数组共享和元素类型变化时的设计边界。387 收藏 -
Go 的 maps.Insert 可以把 iter.Seq2 键值流写入目标 map。本文从 maps.All、slices.All 和自定义生成器三个来源说明合并写法,并梳理重复键覆盖、惰性执行、空流与遍历顺序边界。387 收藏 -
sync.OnceFunc 会把固定关闭回调与一次性状态封装成同一个可并发调用的函数,首次调用完成前其余调用者会等待。本文给出共享资源关闭写法,并比较 Once、原子标记、OnceValue 与单所有者方案的适用边界。387 收藏 -
Go 的 bufio.Reader.Peek 可以查看协议头而不推进读取位置,适合在流式输入中先判断协议类型再决定后续解析。本文用固定协议头示例说明 Peek 的缓冲区上限、短读错误、返回切片有效期,以及确认后的 Read 和 Discard 用法。387 收藏 -
Go 的 json.Indent 可以把已有 JSON 字节直接缩进追加到 bytes.Buffer,适合日志拼接、响应包装和缓冲区复用。本文按完整工作流说明参数选择、Reset、错误处理,以及它和 json.MarshalIndent 的区别。387 收藏 -
Golang · Go教程 | 3星期前 | 切片 · 数据结构 · 标准库 · 泛型 · Go教程 · Go slices稳定去重 Go切片去重 Go保留顺序去重 Go泛型切片处理 Go slices包
使用 Go 的 slices 与泛型思路处理切片全局去重:保留第一次出现的值和原始顺序,同时说明 slices.Compact 的边界、不可比较元素和复杂度取舍。385 收藏 -
Go maphash.Seed 只属于单个进程,不能序列化或跨进程重建。本文解释它与 Hash、Sum64 的关系,并给出保存稳定摘要、重启后重建内存分桶的 Go 实现方案。385 收藏 -
讲清 Go io/fs.WalkDir 命中目标后如何用 fs.SkipAll 正常结束全部遍历,并对比 fs.SkipDir、普通 error 与旧版本兼容写法。384 收藏 -
介绍 Go 标准库 debug/elf.File.DynString 的正确用法:读取 DT_NEEDED、DT_SONAME、DT_RPATH、DT_RUNPATH,理解动态段与字符串表关系,并区分空结果、非法标签、损坏 ELF 和不可信输入。383 收藏 -
Go 堆快照要同时查看 inuse_space 与 alloc_space。本文用相近负载下的多次采样、GC 对齐和 pprof 差异报告,区分高频短命分配、稳定常驻集与持续增长的长期持有。382 收藏 -
用 Go fs.Sub 从 embed.FS 派生独立子文件系统,说明路径映射、HTTP 静态服务、目录缺失检查和安全边界。382 收藏 -
本文介绍 Go atomic.Int64 的声明、初始化、Add 递增、Load 读取和 Store 重置,说明并发计数中的复制限制与复合判断边界。381 收藏