Go语言技术文章
-
Go 1.24 的 os.Root 把文件操作约束在指定目录树中,可阻止绝对路径、.. 越界和指向根外的符号链接。本文用可运行示例说明 OpenRoot、MkdirAll、OpenFile 的正确组合及权限、性能和平台边界。287 收藏 -
Go 接口输入不必把清洗、字段校验和前端契约拆成三套规则。本文用一个原创注册请求示例说明如何组织原地规范化、错误处理、JSON Schema 生成,以及何时应切换到带上下文的显式 Pipeline。287 收藏
-
围绕 Go net/url 的 URL.AppendBinary,说明如何把 URL 序列化结果追加到已有 []byte,如何复用切片容量并处理错误,以及它与 String、EscapedPath 和 MarshalBinary 的调用边界。287 收藏 -
纯 Go DNS 解析器遇到搜索域结果差异时,先在同一环境比较短名、完整名称和尾点绝对名称,再检查 search、ndots 与实际解析器。提供有限超时的 Go 对照程序,说明候选顺序、配置修复及内部名称安全边界。287 收藏 -
Go 1.27 为 go doc 增加 -ex,并支持 package@version 查询。本文用 bytes.ExampleBuffer 演示如何找到可执行示例,说明模块版本边界、输出范围和旧工具链的兼容检查。286 收藏 -
text/template 默认会把缺失 map 键静默变成空值。本文用 missingkey=error 配合模板执行,定位字段拼写错误发生的阶段,并给出可运行的测试验收方法。286 收藏 -
Go 解包 tar 时,先把 Header.Name 当成不可信输入,拒绝绝对路径、.. 路径和链接条目,再用 filepath.IsLocal 与 filepath.Rel 把目标限制在根目录内;词法检查通过后仍要单独考虑符号链接和文件系统竞态。286 收藏 -
解释 Go sort.Search 返回 len 的真实含义,演示如何用边界检查和候选值比较区分目标不存在、末尾插入与实际命中。286 收藏 -
Go runtime/pprof 调整采样间隔时,关键不是把数字调大,而是让采样率、采样窗口和负载保持可比。本文用 StartCPUProfile 与 SetCPUProfileRate 说明参数边界、代码写法及 pprof 结果的正确读法。286 收藏 -
io.LimitedReader 在额度用完和底层输入结束时都可能返回 EOF,单看错误值无法判断是否超限。本文用 limit+1 探测解释如何区分恰好读满、未达到上限和仍有额外数据,并给出保留内容与纯探测两种写法。286 收藏 -
从 go-toml v1 的 Tree/Get 读取迁移到 go-toml/v2 结构体解码,关键不是机械替换函数,而是重写模块路径、字段映射和动态配置边界。本文用最小改造示例说明 Unmarshal、Decoder、严格字段与 DecodeError 的取舍。286 收藏 -
Golang · Go问答 | 4天前 | HTTP · go · Get · Post · 故障排查 · net/http · Microsoft Visual Studio cnwizards(c++程序开发包) net/http HTTP重定向 CheckRedirect Go Redirect POST变GET
Go Client 自动跟随重定向时,301、302、303 会让 POST 后续变成 GET,而 307、308 保留原方法和请求体。本文用服务端与 CheckRedirect 示例说明状态码选择、请求体重放和停止自动跟随的排查方法。286 收藏 -
Go io.WriteString 可以把字符串写入任意 io.Writer,并在目标实现 StringWriter 时直接走字符串写入方法。本文用迁移示例说明调用分派、n 与 error 的处理以及文件、缓冲区和 HTTP 响应的使用边界。286 收藏 -
pflag 中不能通过比较当前值和默认值判断用户是否传参,因为用户可能显式传入了与默认值相同的值。本文说明 Changed、Visit 与 NoOptDefVal 的使用边界。286 收藏 -
slices.DeleteFunc 适合按条件批量删除切片元素,但回调遍历的是原切片语义,不能在回调里再改同一个切片。本文用可运行示例拆开保序删除、索引变化和尾部清零带来的内存边界,并给出何时改用一次性筛选。285 收藏