Go语言技术文章
-
Go 的 http.Request.Clone 会复制请求的大部分可变结构并替换 context,但 Body 仍是浅拷贝。本文用转发请求和超时取消两个场景,核对 Header、URL、Body 与 context 的安全边界。340 收藏 -
讲清 Go 中 http.Request.URL.Query 返回的 url.Values 结构,如何读取重复参数、保留出现顺序,并区分参数缺失与显式空值。340 收藏 -
Go 1.26 的实验包 runtime/secret 用 secret.Do 包住处理敏感数据的调用链,清理寄存器和栈上的临时值,并在堆对象失去引用后交给垃圾回收清理。本文说明启用方式、返回值复制、panic 与平台限制。340 收藏 -
Go 1.27 让 go test 默认启用 stdversion 检查,用来发现代码使用了高于 go.mod 版本的标准库符号。本文从报错定位开始,说明 go.mod、构建标签和升级边界如何配合,并给出可复现的检查流程。339 收藏 -
Go 的 embed.FS 适合把默认配置随二进制一起发布,但路径写错、覆盖顺序不清和测试读错目录都很常见。本文从目录布局到运行时覆盖,给出可复用的最小实现、验证命令和回滚边界。339 收藏 -
用一个可复现的小例子拆开 strings.CutPrefix 与 HasPrefix 加切片的差别,重点核对 found 返回值、空前缀、相同前缀和 UTF-8 字符边界。338 收藏 -
Golang · Go问答 | 1天前 | golang · 错误处理 · Go问答 · io包 · 文件写入 · Go Writer io.MultiWriter io.ErrShortWrite 短写
io.MultiWriter 会把一次写入依次交给多个 Writer;只要某个目标返回短写或错误,调用方就必须按返回字节数和错误值判断是否完整。本文用可复现实验拆解 ErrShortWrite 的触发边界、失败顺序和安全核对方式。338 收藏 -
解释 Go 的 net/url.PathEscape 只负责单个 URL 路径段的原因,并用 url.JoinPath、URL.Path 和 EscapedPath 处理资源地址拼接中的斜杠、编码与路径边界。338 收藏 -
Go 标准库的一次性初始化函数适合把昂贵且只需执行一次的结果封装成并发安全调用。本文从配置加载和失败传播两个场景入手,演示最小写法、panic 语义、Go 版本边界和测试方法。337 收藏 -
Go 1.26 的实验性 runtime/secret 通过 secret.Do 清理密码学临时数据。本文用一条短命密钥处理链说明启用方式、适用边界和不能替代的安全措施。337 收藏 -
Go 1.25 的 runtime/trace.FlightRecorder 能持续保留最近一段执行轨迹,在慢请求或健康检查异常时导出现场。本文用一个 100 毫秒慢请求阈值示例,说明 MinAge、MaxBytes、WriteTo 和 go tool trace 的配合边界。336 收藏 -
Golang · Go教程 | 1天前 | golang · JSON · 数据库 · 数据建模 · database/sql · JSON Go database/sql 零值 NullTime 数据库NULL
数据库里的 NULL 不是 Go time.Time 的零值。本文用 database/sql.NullTime 贯通扫描、业务判断和 JSON 输出,给出一套能区分缺失时间与真实零时间的最小实现,并说明写回数据库时的边界。336 收藏 -
Go 1.27 的 go/ast.PreorderStack 在遍历语法树时同时提供当前节点和父节点栈,适合判断嵌套函数、块作用域与调用位置。本文用一个可运行示例说明调用链、栈内容和边界处理。335 收藏 -
bytes.Buffer.Reset 会清空可读数据,却保留底层存储。本文用容量、切片别名和并发边界说明复用何时有益、何时会让大块内存长期驻留。334 收藏 -
用一个最小 HTTP 服务演示 Go 的 http.NewResponseController 如何统一调用 Flush 和 Hijack,并核对包装器与 HTTP/2 不支持时的错误边界。334 收藏