Go教程技术文章
-
Go 的 url.Values 本质是 map[string][]string。批量合并查询参数时,Add 负责追加,Set 负责替换;配合 Clone 和 Encode 可以实现有优先级、可复用且不污染原输入的 URL 查询构造。493 收藏 -
Go 的 URL.Fragment 保存解码语义,RawFragment 仅是原始编码提示。本文说明 EscapedFragment 如何验证并保留 %2F 等表示,以及修改、构造和批量输出时如何避免二次编码。348 收藏 -
使用 Go net/url.Values 管理查询参数,借助 Encode 完成键排序和 URL 编码,再安全写回 url.URL。文章覆盖多值参数、空值、已有 RawQuery 和解析错误等边界。129 收藏 -
Go 的 ResolveReference 能按 RFC 3986 正确组合相对地址,但它也会接受绝对 URL 和网络路径引用。本文给出同源校验、目录边界限制与表驱动测试写法。141 收藏 -
filepath.EvalSymlinks 会逐层解析路径中的符号链接并清理结果。本文给出最小用法、多层相对链接示例、断链和链接环错误处理,以及把最终路径限制在受信根目录内的检查方法。410 收藏 -
filepath.IsLocal 能用纯词法规则拒绝绝对路径、空路径和会逃出当前目录的路径。本文给出安全拼接函数、跨平台边界、内部点段判断、Windows 保留名说明,以及符号链接场景下使用 os.Root 的加强方案。311 收藏 -
Go 1.23 引入 filepath.Localize,用于把 io/fs 的斜线路径安全转换为当前操作系统路径。本文比较 Localize、ValidPath 与 FromSlash 的边界,给出输入校验、跨平台错误处理和 API 选型示例。292 收藏 -
Go 为 exec.Cmd 设置工作目录后,应先赋值 Cmd.Dir,再调用 Cmd.Environ 并写回 Cmd.Env。本文解释正确顺序、重复环境变量覆盖规则,以及 PWD、os.Getwd、getcwd 在符号链接路径下的差异。142 收藏 -
用一个父子进程示例说明 Go os/exec 的 ExtraFiles 如何把文件传到固定的 3+i 描述符,覆盖子进程读取、关闭时机、EOF 排查与 Windows 不支持边界。287 收藏 -
讲清 Go exec.CommandContext 如何在启动前替换 Cmd.Cancel,用协作式信号代替默认 Kill,并结合 WaitDelay、os.ErrProcessDone 与 ErrWaitDelay 处理退出边界。455 收藏 -
Go os/exec 的 WaitDelay 不只是命令超时参数,它还限制子进程退出后遗留 I/O 管道的收尾等待。本文用 CommandContext、ErrWaitDelay 和输出管道示例说明配置方式与边界。408 收藏 -
Go url.URL 的 Opaque 用于表示 scheme:opaque 形式的非层级 URI。本文对比 mailto、urn、data 与普通 HTTP 地址,说明字段读取、直接构造和误用边界。435 收藏 -
url.ParseQuery 会把重复键保存为字符串切片;未编码分号会让对应片段无效,但有效参数仍可能保留。本文讲清读取方式、错误处理与 HTTP 接口边界。455 收藏 -
讲清 Go net/url 中 Path、RawPath 与 EscapedPath 的关系,演示如何保留合法编码斜杠,以及改写路径后如何避免 RawPath 失配。153 收藏 -
Go 的 url.JoinPath 能在拼接 URL 路径时清理点号段和重复斜杠。本文通过后端接口地址实验讲清函数与方法差异、尾斜杠规则、路径转义和安全边界。274 收藏