Go语言技术文章
-
Go database/sql 中 rows.Next 返回 false 不一定代表结果正常读完,也可能是驱动在迭代阶段返回了错误。本文用原创读取模板拆开 Query、Scan、Close 和 Rows.Err 的职责,并说明多结果集与写入型结果集的处理边界。146 收藏 -
Golang · Go教程 | 23小时前 | html · 模板 · Go教程 · html/template · Go html/template HTML转义 模板安全 template.HTML 上下文自动转义
Go html/template 默认把数据当作普通文本,并按 HTML、属性、URL、JavaScript 等上下文自动转义。本文用三类输入对照 template.HTML 的信任边界,说明怎样保留可信标签而不把不可信字符串直接当成 HTML。281 收藏 -
Go text/template 自定义函数时,关键是先用 Funcs 注册,再让函数返回值或值加 error。本文用一个带业务校验的示例说明 Parse、Execute、errors.As 和部分输出边界。105 收藏 -
Go embed 子目录读取需区分编译匹配位置、原始文件系统根与子视图根,本文用原创示例说明 fs.Sub、目录枚举、路径前缀及缺失资源的排查方法。256 收藏 -
Go 的 filepath.Glob 只会把模式语法错误报告为 ErrBadPattern,无匹配通常是 nil、nil,目录读取等文件系统错误则会被忽略。本文从批处理中的误判现场出发,讲清三种结果如何区分、如何复现和怎样设计错误分支。410 收藏 -
Go 的 io/fs 使用统一的虚拟路径语法。本文说明 fs.ValidPath 如何拒绝空段、点段和首尾斜杠,怎样在 FS.Open 前接入校验,以及反斜杠、文件存在性和目录隔离的边界。444 收藏 -
Go os/exec 应固定可信程序入口、分项传递参数并限制业务字段。本文用原创导出函数解释参数与命令分离、取消和退出错误、输出生命周期、PATH及平台差异,不把无 shell 等同于任意输入安全。218 收藏 -
Go 调用外部命令时,Cmd.Stdout 和 Cmd.Stderr 是两条独立输出流。本文从只看到一条日志的常见现场出发,分别介绍 bytes.Buffer、StdoutPipe、StderrPipe 和 CombinedOutput 的选择、错误处理与并发读取边界。126 收藏 -
Go 标准库 flag 的 String 适合单值参数,但命令行工具经常需要重复传入 -include。本文比较单值、逗号分隔、flag.Func 和自定义 flag.Value 四种方案,给出可直接复用的切片收集实现,并说明默认值、空值和 FlagSet 隔离场景。292 收藏 -
Go 里把整数拼进响应、日志或协议帧时,strconv.AppendInt 可以直接追加到目标 []byte。本文说明怎样复用缓冲、提前规划容量,并分清中间字符串分配与切片扩容的边界。220 收藏 -
用 Go 的 base64.RawURLEncoding 生成不带等号的 URL 安全令牌,讲清字母表、编码解码、填充兼容和长度错误的处理边界。300 收藏 -
用 Go net/url 解析 URL 查询串,掌握 Query、Values.Get、Has、ParseQuery 在单值、多值、空值和错误处理上的边界。131 收藏 -
用 io.MultiWriter 把文件与 hash.Hash 组合为一个 Writer,单次读取源流即可落盘并计算摘要;通过完整示例解释写入顺序、复制及关闭错误、缓冲与字节层选择,避免返回无效结果。369 收藏 -
用 Go image/draw 按目标尺寸计算居中裁剪框,再将源图区域复制到缩略图画布,并排查边界、偏移与合成模式问题。234 收藏 -
Go 的 image.Decode 会根据已注册的解码器识别 PNG 或 JPEG。本文给出空白导入、格式返回、尺寸预检和文件位置复位的最小写法。231 收藏