Go教程技术文章
-
ReuseRecord 只影响 Reader.Read 返回的记录切片是否可复用,对 ReadAll 没有把全部记录变成单行复用的效果。本文比较两种读取方式的内存边界,并给出流式处理、保留记录和错误检查的选择方法。326 收藏 -
讲清 Go xml.Decoder.Token 如何从 io.Reader 逐个读取大型 XML,并用 DecodeElement、Skip、InputPos 和 Token 生命周期规则实现低常驻内存的单记录处理。326 收藏 -
Go 1.23 起,sync.Map.Clear 可直接删除并发映射中的全部条目,清空后仍能继续 Store 和 Load。本文通过可重置缓存示例说明基本用法、并发写入边界、旧版本兼容方案,以及需要严格换代时的原子指针切换设计。326 收藏 -
Go csvutil 处理 HexID、业务枚举等非基础字段时,可以用 UnmarshalCSV/MarshalCSV 或注册转换器统一文本格式。本文按升级变更单的方式比较旧写法与新写法,说明错误处理、注册优先级和回归检查。326 收藏 -
Go 1.25 的 sync.WaitGroup.Go 把任务登记和完成扣减绑定到一个函数边界,本文说明空组、嵌套任务、异常函数和 Add/Done 兼容场景的调用边界。326 收藏 -
用 Go regexp.FindAllIndex 获取每次匹配的半开字节区间,理解 n 参数、中文 UTF-8 下标,以及整体匹配和捕获组索引的区别。326 收藏 -
Go html/template 会根据变量所在的 HTML、属性和 URL 上下文自动处理输出。本文对比普通文本、查询参数和完整链接的写法,说明不安全协议为何会被过滤,以及 template.URL 的可信来源边界。326 收藏 -
Go 1.27 为 crypto/x509.Certificate 增加 RawSignatureAlgorithm,可读取证书签名算法的 DER AlgorithmIdentifier。本文说明如何从 PEM 证书解析 OID,区分原始字节与 SignatureAlgorithm,并处理未知算法、ASN.1 错误和证书验证边界。326 收藏 -
说明 Go 1.27 中 tls.MLKEM1024 的配置方式、CurvePreferences 的集合语义,以及回退候选和握手状态读取方法,区分支持配置与实际协商结果。326 收藏 -
Go 标准库 debug/macho.File.Section 可以按名称取得 Mach-O 节区。本文从打开文件、查找节区、读取元数据到选择 Data 或 Open 的完整流程,说明错误处理、资源关闭和输入边界。326 收藏 -
Go transform.Append 可将转换内容追加到已有字节缓冲区。本文说明 result、n、err 的含义,给出保留前缀的实现,并解释容量复用、状态重置和部分输出边界。326 收藏 -
用 Go beep 把有限音频包装为循环流,关键是先取得可 Seek 的 StreamSeeker,再用 Loop(-1) 循环,并用 Take、Err 和 Close 处理播放边界。326 收藏 -
Go iter.Pull2 把返回键值对的 iter.Seq2 转成 next 和 stop 两个函数,适合逐项拉取、限量读取和提前退出。本文用 maps.All 说明结束信号、defer stop、零值返回以及并发调用边界。326 收藏 -
Go csv.Reader 本身不会把 NUL 字节当成逗号或引号语法错误。本文用原始字节扫描定位 0x00 的偏移,再结合 FieldPos、InputOffset 和 ParseError 区分脏数据与 CSV 结构问题。326 收藏 -
Go 的 os.ReadDir 返回 DirEntry,不必立刻为每个目录项读取完整 FileInfo。本文拆开 Type、IsDir、Info 的成本和错误边界,说明排序语义、符号链接判断以及适合目录扫描的最小写法。325 收藏