Go语言技术文章
-
使用 Go net/url 修改查询参数时,直接操作 URL.Query 和 RawQuery,避免重建路径导致 %2F 等编码边界发生变化。本文从最小写法、字段分工、重复参数和完整示例说明可靠做法。464 收藏 -
Go bytes.Buffer.WriteTo 会把缓冲区的未读内容写入 io.Writer,并返回已经写出的字节数和错误。本文用最小示例说明完整写入、短写入、错误保留和发布前检查,帮助你避免重复发送或误判成功。464 收藏 -
Go 1.25 的 net/http 提供 CrossOriginProtection,可以在 Handler 层拒绝非安全的跨源浏览器请求。本文从保护范围、可信 Origin、拒绝处理器和认证边界四个方面给出一套可落地的写接口接入方式。464 收藏 -
本文用 Go 标准库 debug/plan9obj 读取自有 Plan 9 a.out 文件的符号表,讲清 Symbols 返回的 Sym 字段、Open 与 Close 的调用顺序,以及 ErrNoSymbols 与普通读取错误的区别。464 收藏 -
Go multipart.Part.FileName 读取的是 Content-Disposition 中的 filename 参数。普通表单字段没有这个参数时返回空字符串,文件分段带空 filename 时也可能为空;如果有文件名,Go 还会用 filepath.Base 处理后再返回。464 收藏 -
Go fitsio 向 FITS 表写入一条结构化记录时,先用带 fits 标签的结构体确定列布局,再用 NewTableFrom 建表、Table.Write 写当前行、File.Write 提交 HDU。本文还说明新建文件与原地修改的边界,以及失败时如何保留可回退的输出。464 收藏 -
围绕 sonyflake/v2 的 Settings 配置机器编号,说明 MachineID、CheckMachineID、位布局和扩容时的唯一性边界,帮助 Go 服务稳定生成分布式整数 ID。464 收藏 -
围绕 Go image/draw.DrawMask 讲清目标区域、源图和 mask 的坐标关系,并用 draw.Src 与 draw.Over 解释透明遮罩的局部合成边界。464 收藏 -
Go sync.Cond 通过 Broadcast 唤醒当前等待的全部协程,但通知不等于条件成立,也不负责复制或保存结果。本文用共享状态示例说明 Wait 为什么必须放在 for 中,并排查广播后结果为空的常见原因。464 收藏 -
同包多个 AST 文件应共享 FileSet 与 Checker,一次提交相关声明。示例展示包作用域和诊断收集,并说明文件选择、依赖导入与增量检查边界。464 收藏 -
Go ast.FieldList.NumFields 统计的不是 FieldList.List 的长度,而是每个 Field 中声明名的总数;没有名字的字段按一个计算。本文用函数参数和结构体字段说明合并声明、匿名字段与 nil 边界。464 收藏 -
Go encoding/csv.Reader 的 ReuseRecord 可以复用记录切片,减少流式读取中的分配,但返回记录不能直接跨迭代保存。本文用转换、队列和批处理场景说明什么时候复用、什么时候必须 copy。464 收藏 -
Go 1.24 为 net.IP 增加了 AppendText,它可以把地址文本直接追加到已有 []byte,适合日志、协议字段和批量编码场景。本文从 String 的中间结果、最小调用、空 IP、异常长度和容量复用五个方面说明怎么用,避免把返回切片或 error 处理错。464 收藏 -
Golang · Go教程 | 1小时前 | 并发 · 标准库 · 定时任务 · 资源管理 · Go教程 · Go Goroutine context 资源清理 time.Ticker Ticker.Stop
time.Ticker.Stop 只停止新的 tick,不会关闭 ticker.C,也不会终止正在运行的 goroutine。本文按资源所有权整理 ticker、退出信号、后台任务和内部文件请求的清理责任,并给出可幂等关闭的实现方式。464 收藏 -
Write 返回成功不代表数据已经到达稳定存储。本文用 Go os.File.Sync 拆开写入、同步、关闭和文件替换的边界,给出可复用的错误处理写法。463 收藏