Go教程技术文章
-
在 Go LDAP 查询中使用 EscapeFilter 转义用户输入,固定属性名与过滤器模板,并区分过滤器值、DN 和查询结果处理边界。135 收藏 -
Go bufio.Scanner 默认按行切分,但日志块、消息片段或自定义文本记录往往需要自己的分隔符。本文从 SplitFunc 的返回值契约出发,给出处理半条记录、EOF、空记录、超长 token 和扫描错误的完整写法。135 收藏 -
Go sync.Map 并不是所有并发 map 的默认替代品。本文从只写一次多次读取、互不重叠键集合两个官方优化场景出发,结合 LoadOrStore 示例说明它和 map 加 RWMutex 的取舍,以及 Range、类型安全和复制限制。135 收藏 -
介绍 Go PNG EncoderBufferPool 的适配实现与批量编码接入,提供无池和有池基准示例,解释借还所有权、错误处理及分配下降与内存保留的区别。135 收藏 -
用 Go net.IPNet.Contains 判断地址是否落在 IPv4 或 IPv6 子网中,说明 ParseCIDR、地址族、掩码长度和 nil 边界,给出可复用的白名单判断写法。135 收藏 -
Gin 的 ShouldBind 会消耗请求体,第二次绑定常常只能拿到空内容。本文用 ShouldBindBodyWith 缓存同一份 body,演示两个结构体的绑定写法、错误处理和性能边界。134 收藏 -
Go runes.Remove 可按字符集合删除命中的 Unicode 码点。本文用 Predicate 删除下划线和中点,说明 UTF-8 输入、字符串返回值、原文留存与展示副本的使用边界。134 收藏 -
使用 golang.org/x/text/encoding/japanese 的 ISO2022JP 解码器读取带转义状态的日文字节流,覆盖一次性转换、流式读取、截断边界与重新编码。134 收藏 -
用 Go go-geom 的 NewLineStringFlat 把按 X、Y 排列的一维 float64 切片构造成二维 LineString,理解 XY 布局、stride、坐标读取、长度计算与切片复用边界。134 收藏 -
unique.Make 没有缓冲区参数。本文用 Go 逐行标签程序说明如何复用 Scanner 缓冲、转换稳定字符串并保存句柄,区分值去重与记录去重,同时解释输入限制、生命周期和性能判断边界。134 收藏 -
用 Go 标准库边读文件边计算 SHA-256 摘要,不把整个文件一次性读入内存;本文给出 os.Open、sha256.New、io.Copy 的完整写法,并补充错误处理、进度统计与算法选择边界。133 收藏 -
Go json/v2 MarshalWrite 用于把 Go 值直接编码到 io.Writer。本文说明 Writer 与值的参数顺序、编码选项、无换行行为,以及 HTTP 输出发生错误时应直接写出还是先缓冲。133 收藏 -
讲清 Go os.DirFS 的 fs.FS 包装方式、相对路径规则、符号链接边界,以及何时应选择 os.Root.FS。133 收藏 -
Go 解码动态 JSON 时,默认数字会进入 float64,较大的整数可能失去精度。本文说明如何在 Decode 前调用 json.Decoder.UseNumber,何时使用 json.Number.String、Int64 和 Float64,以及结构体字段与动态字段的边界。133 收藏 -
Go 的 time.Ticker 退出时不能只停业务循环,还要明确 Stop、ticker.C 和消费协程的生命周期。本文用一个可复用的退出模式说明如何停止 ticker、等待 goroutine 并避免通道误用。132 收藏