Go教程技术文章
-
用 Go bufio.Writer.AvailableBuffer 配合 append 和 strconv.AppendInt 构造短记录,减少循环中的临时切片分配,并说明容量不足、切片生命周期、Flush 和 Go 版本兼容边界。226 收藏 -
以逗号分隔标签的规范化函数为例,用 Go Fuzz 检查编解码往返、幂等、UTF-8、排序与去重性质,并给出种子语料、运行预算和失败输入回归方法。226 收藏 -
Golang · Go教程 | 1天前 | 标准库 · HTTP · go · Cookie · net/http raw Set-Cookie Go Cookie ParseSetCookie RawExpires
Go 的 net/http.Cookie 同时提供 Raw、RawExpires、结构化属性和 Unparsed。本文围绕 Set-Cookie 解析差异,说明怎样保存原始属性字符串、怎样用字段级指标回归,以及为什么 Cookie.String 不能替代原文透传。226 收藏 -
Go 更新配置文件时不要直接截断正式文件。把临时文件放在同一目录,完整写入并同步关闭后,再用 os.Rename 一次性切换,才能降低半文件和并发读取风险。225 收藏 -
用 Go sync.Cond 实现有界生产者消费者队列时,关键不是记住 Signal 或 Broadcast,而是让条件判断、互斥锁和唤醒动作保持同一条状态链。本文给出可迁移的实现方式与边界检查。224 收藏 -
io/fs 使用斜杠分隔的虚拟路径,而本地文件 API 服从操作系统规则。本文拆开 fs.ValidPath、filepath.Localize 和 filepath.FromSlash 的职责,给出可复用的跨平台转换写法。224 收藏 -
Bubble Tea 中不要让耗时查询直接阻塞 Update,而是把查询封装成 tea.Cmd,在完成后返回带数据或错误的自定义 Msg,再由 Update 统一更新模型。本文还说明如何用请求序号丢弃过期结果。224 收藏 -
用一个小型 Go 服务说明 database/sql 连接池上限的配置方法:先按数据库额度留出余量,再设置 MaxOpenConns、MaxIdleConns 和连接生命周期,最后结合 DBStats 判断参数是否合适。223 收藏 -
围绕 Go filepath.Match 的方括号字符类,说明转义、字符区间、ErrBadPattern 以及 Unix 和 Windows 的差异,给出可直接改成测试的写法。222 收藏 -
Go sort.Search 并不要求把数据重新排成升序。本文从第一个 true 的返回语义出发,说明降序切片为什么使用 data[i] <= target,并处理精确命中、重复值、未找到和 len(data) 边界。222 收藏 -
把临时文件处理从 filepath.Join、os.CreateTemp 和 os.Rename 迁移到 os.Root,关键是先固定根目录,再让创建、写入、改名和清理都使用相对路径。本文用一个生成 JSON 报告的小项目拆解迁移步骤,并说明 Go 版本、资源关闭和越界路径的边界。221 收藏 -
用 go:generate 固定生成入口,在 go build 前检查生成结果与源定义是否同步,覆盖命令边界、差异检查、工具依赖和提交策略。220 收藏 -
演示如何用 Writer.RegisterCompressor 为指定 ZIP 方法注册压缩器,并说明 Method 选择、Close 刷新、并发安全、读取兼容性和性能衡量方法。220 收藏 -
用 Go embed.FS 把静态目录编译进程序,掌握 //go:embed 的路径模式、包边界、隐藏文件规则,以及接入 HTTP 和模板解析时的目录约定。220 收藏 -
Go 里把整数拼进响应、日志或协议帧时,strconv.AppendInt 可以直接追加到目标 []byte。本文说明怎样复用缓冲、提前规划容量,并分清中间字符串分配与切片扩容的边界。220 收藏