Go教程技术文章
-
用 filepath.Rel 的 error 判断两个目录能否建立词法相对路径,说明同路径、子目录、绝对相对混用、Windows 卷名差异以及目录存在性边界。201 收藏 -
通过自动准备临时文件的Go示例,区分Glob有匹配、无匹配与模式语法错误,说明空切片处理和文件系统错误被忽略的限制。316 收藏 -
Go regexp.FindReaderSubmatchIndex 面向 io.RuneReader 返回首个整体匹配及各捕获组的字节区间。本文说明整数切片的成对下标、未匹配分组的负一标记、无匹配时的 nil 返回,以及流式 Reader 可能提前读取的边界。385 收藏 -
Go hash/fnv.New32a 适合为字符串或字节流生成稳定的 32 位非加密哈希。本文从最小写法出发,说明 Write、Sum32、Sum 的区别,演示分片输入,并划清 FNV-1a 与密码学哈希的使用边界。491 收藏 -
把Go磁盘目录适配为fs.FS,用完整资源读取程序说明系统根路径、组件名称、工作目录、错误分类与符号链接边界。167 收藏 -
本文用 embed.FS 和 fs.Glob 演示如何按层级模式查找嵌入文件,说明路径根、通配符、无匹配结果、错误模式与 fs.ReadFile 的衔接,并补充 fs.Sub 缩短匹配根的写法。369 收藏 -
用Go fs.Sub把资源子目录作为组件的新根,通过完整内存文件示例解释相对路径、目录列举、读取错误以及文件访问隔离的边界。280 收藏 -
Go debug/pe.File.COFFSymbolReadSectionDefAux 用于读取节定义符号后的 COFF 辅助记录。本文从 COFFSymbols 索引、SectionNumber 与辅助数量出发,给出资源安全的读取示例,并说明如何结合 IMAGE_SCN_LNK_COMDAT 解释 Selection 字段。178 收藏 -
Go net.JoinHostPort 用于把主机和端口拼成网络地址。本文说明它为什么会给 IPv6 主机自动加方括号,并覆盖域名、IPv4、空主机、zone 标识和 SplitHostPort 配合时的实用边界。434 收藏 -
从字符串排序迁移到 netip.Addr.Compare:本文用 ParseAddr 和 sort.SliceStable 对 IPv4、IPv6 地址做稳定排序,并说明非法输入、相同地址和 IPv6 zone 的边界。425 收藏 -
Go 的 httputil.ReverseProxy.Rewrite 适合把入站请求改造成可控的出站请求。本文从一个小型反向代理开始,讲清 SetURL、Host、X-Forwarded-*、查询参数和 Director 迁移时最容易忽略的边界。476 收藏 -
Go netip.Addr.Is4 直接判断 Addr 是否为原生 IPv4;IPv4 映射 IPv6 会返回 false,需要先用 Is4In6 识别,或用 Unmap 归一化后再判断。469 收藏 -
Go netip.Prefix.String 返回 CIDR 文本,但 PrefixFrom 可能保留主机位。本文说明 String、Masked、IsValid 与 MarshalText 的边界和实用写法。382 收藏 -
Go 中使用 sha256.New224 计算 SHA-224 摘要时,核心是通过 hash.Hash 分段写入数据,再读取 28 字节结果。本文说明流式写法、文件输入、Sum224 的选择,以及摘要长度和十六进制输出的排查方法。469 收藏 -
Go 反射中调用 Value.Addr 前,必须先确认 Value 是否可寻址。本文用 CanAddr 串起普通值、指针解引用、切片元素、结构体字段与 map 索引的边界,并说明它与 CanSet、CanInterface 的区别。318 收藏