Go语言技术文章
-
围绕 Go time.Parse 与 time.ParseInLocation,说明带 Z、数值偏移和时区缩写的字符串如何选择布局,给出可复用的解析代码与排错清单。275 收藏 -
Go 的 text/template 与 html/template API 很像,但输出边界不同:日志和邮件纯文本使用 text/template,浏览器 HTML 使用 html/template。本文用一个最小渲染项目对比普通文本、HTML 文本节点和 href 属性中的转义结果,并说明 template.HTML 的信任边界。275 收藏 -
Go 的 encoding/json 默认会忽略结构体未声明的 JSON 键。要让接口在字段拼错或协议漂移时立即报错,可以使用 json.Decoder 并调用 DisallowUnknownFields,同时再解码一次确认请求体没有第二个 JSON 值。275 收藏 -
Go 的 //go:fix inline 不会盲目把带副作用的实参替换进函数体。源码级内联器会分析求值顺序和次数,必要时保留显式参数绑定。本文用原创示例说明风险、工具策略与迁移验收方法。275 收藏 -
用 Go 的 fs.FS 抽象统一前端资源访问,开发期读取本地目录,发布期切换到 embed.FS,兼顾热更新、路径安全、缓存和测试。275 收藏 -
Go 的 URL.Path 是解码后的路径语义,EscapedPath() 面向转义表示;本文用 %2F 示例说明路由匹配、日志记录和请求拼接时该怎么选。275 收藏 -
Go base64.NewEncoder 写入成功不代表尾部已输出。文章解释三字节分组与尾部缓冲,给出检查 Copy、Close 错误的封装,区分编码器、缓冲层与文件收尾,并补充尾部长度测试与无填充编码边界。275 收藏 -
strings.Builder 能减少循环拼接中的中间字符串复制,但 Grow、String、Reset 和按值传递都有明确边界。本文用最小示例说明如何预估容量、保持单一所有者,并用 Cap、Len 和基准测试判断优化是否成立。274 收藏 -
Go 的 url.JoinPath 能在拼接 URL 路径时清理点号段和重复斜杠。本文通过后端接口地址实验讲清函数与方法差异、尾斜杠规则、路径转义和安全边界。274 收藏 -
Go 多模块工作区会把 use 中的本地模块同时视为主模块,可能遮住单个 go.mod 的依赖缺口。本文说明怎样用 GOWORK=off 复现独立构建、比较依赖边界,并用 require、可发布版本和 CI 单模块测试修复。274 收藏 -
Go fuzzing 的种子语料既可以来自 f.Add,也可以来自 testdata/fuzz/FuzzTestName 目录。本文给出按 Fuzz 目标拆分目录、区分样本用途并纳入安全审计的组织方法。274 收藏 -
html/template 并不是简单地把所有字符串统一转义,而是根据插值所在的 HTML、属性、URL、JavaScript 或 CSS 上下文选择处理方式。本文用最小示例排查转义异常、ZgotmplZ 和安全类型误用。274 收藏 -
用 sort.Search 的单调谓词找到升序切片中第一个大于等于目标值的位置,正确处理重复值、未命中和末尾插入。274 收藏 -
GopherLua 的 LState 不是 goroutine-safe。本文说明为什么不能让多个 goroutine 直接共用一个 LState,并给出独占状态、channel 通信、共享只读字节码和对象池的落地边界。274 收藏 -
本文用 filepath.IsLocal、filepath.Clean、filepath.Join 和 filepath.Rel 处理 Go 用户路径,说明词法规范化、固定根目录拼接与符号链接安全检查的边界。273 收藏