Go教程技术文章
-
Golang · Go教程 | 15小时前 | 标准库 · 单元测试 · TLS · Go教程 · Go Go标准库 HTTP测试 NewServer testing/httptest NewTLSServer TLS测试
testing/httptest 的 NewServer 适合普通 HTTP 回环测试,NewTLSServer 用于确实需要 HTTPS、证书信任或 TLS 配置的场景。本文用同一 Handler 对比两者的请求写法、客户端选择、配置时机和资源清理边界。276 收藏 -
用一个可运行的小例子说明 netip.Addr 为什么能直接做 map 键,并拆开零值、IPv4 映射和 net.IP 迁移时最容易踩到的边界。275 收藏 -
当 errors.Is 判断包装错误失效时,先区分单链 Unwrap 与 errors.Join 的多链展开,再用可复现代码检查哨兵错误是否仍在错误树中。本文从一个接口报错现场出发,给出定位、修复和边界验证方法。275 收藏 -
围绕 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 收藏 -
Go context.WithoutCancel 可以保留父 context 中的请求级值,同时切断取消信号。本文用收尾任务示例说明它的语义、独立超时写法、适用边界和常见误区。275 收藏 -
Go hash/maphash 的 Seed 决定 Hash 使用的哈希函数。本文说明怎样用 SetSeed 让多个 Hash 实例使用同一个进程内 Seed,如何用于并发计算,以及调用时会清空已有输入的边界。275 收藏 -
Go strconv.FormatBool 可以把 bool 稳定转换成 true 或 false 文本。本文从最小写法出发,说明它与 fmt 通用格式化、ParseBool 和 JSON 序列化的边界,帮助你在日志、键值字段和文本接口中选对转换方式。275 收藏 -
Go sync/atomic.AndUint64 可以用一个按位 AND 原子更新 uint64 状态字。清除指定状态位时要传入反掩码,函数返回清除前的旧值;本文还说明 64 位对齐与 atomic.Uint64.And 的选择边界。275 收藏 -
Go 一次性值加载适合只初始化一次且可并发调用的值计算,但初始化函数一旦 panic,后续调用仍会重复 panic;需要重试时,应把错误返回和重试状态放在明确的控制器中。274 收藏