Go教程技术文章
-
bufio.Reader.Peek 可以在不推进读取位置的情况下查看输入前缀,适合把一个流交给不同解析器。本文用一个小型输入分发工具说明 Peek 的组合方式、缓冲区边界、短输入和返回切片生命周期。493 收藏 -
通过Problem、Minimize与NelderMead实现自定义标量函数最小化,说明变量维度、方法契约、计算预算及候选结果的解释。493 收藏 -
读取 EUC-KR 或 CP949 保存的旧韩文文本时,不能直接把原始字节转换成 UTF-8 字符串。本文用 golang.org/x/text/encoding/korean 的 EUCKR 解码器接入 transform.Reader,给出整文件读取、流式复制、错误处理和内存取舍。493 收藏 -
fmt.Sscanf 适合解析结构稳定的字符串:用格式模板约束字段位置,用指针接收值,再同时检查扫描数量和 error。普通动词会按扫描规则处理空白,%c 则直接读取下一个字符。493 收藏 -
Go time.Ticker 停止后循环仍不退出,关键在于 Stop 不关闭 C。用 context 取消、defer Stop 和完成通道划分职责,并说明 Go 1.23 回收语义及回调阻塞边界。493 收藏 -
请求结束后仍要完成异步任务时,先用 context.WithoutCancel 脱离请求取消,再用 context.WithTimeout 设置独立期限;本文同时说明值传递、取消边界和常见误区。493 收藏 -
Go 1.27 的 encoding/json/v2 可用 StringifyNumbers 把数字编码为 JSON 字符串。本文对比调用级选项与字段级 string 标签,给出旧客户端兼容、严格解码、精度测试和灰度退出方案。493 收藏 -
用 Go runtime/trace 的 Flight Recorder 保留延迟尖峰前的有限执行轨迹,配置 MinAge、MaxBytes,并在阈值触发时安全写出快照。493 收藏 -
Go 的 url.Values 本质是 map[string][]string。批量合并查询参数时,Add 负责追加,Set 负责替换;配合 Clone 和 Encode 可以实现有优先级、可复用且不污染原输入的 URL 查询构造。493 收藏 -
Go container/list 删除异常通常不是链表坏了,而是把 Value 当成 Element、节点来自另一条 List,或遍历时没有先保存 Next。本文按这三类现象给出排查和回归清单。493 收藏 -
Go 控制 multipart 请求体积不能只调大或调小 maxMemory。本文用 MaxBytesReader 限制总 body,用 ParseMultipartForm 管理解析内存,再用 MultipartReader 和 LimitReader 控制单个 part,补上数量、临时文件和错误处理边界。493 收藏 -
Go 的 O_APPEND 负责把写入定位到文件末尾,O_TRUNC 则在打开可写文件时清空已有内容。本文用一个小工具拆解两者组合,给出覆盖写、追加写和安全新建的选择方法。493 收藏 -
Go 的 archive/zip 不把操作系统路径直接当作 ZIP 路径使用。本文从相对路径、正斜杠、目录尾斜杠和 Writer.Close 四个边界出发,写一个可复用的 ZIP 构建示例,避免目录条目错位、穿越路径和重复名称。493 收藏 -
Golang · Go教程 | 2个月前 | 部署 · 模板 · Go教程 · 文件系统 · Go 静态资源 go:embed embed.FS fs.ValidPath template.ParseFS
把 HTML 模板和静态资源随 Go 二进制发布时,embed.FS 能提供只读文件树,但路径仍需遵守 fs.ValidPath 规则。本文从 go:embed、template.ParseFS 到运行时读取,说明目录布局、错误分支和部署验收。493 收藏 -
用 Go database/sql 的 QueryContext 获取 Rows,配合 Next、Scan、Close 和 Err 逐行读取查询结果;本文重点说明提前退出、迭代错误与连接池资源归还的生命周期处理。492 收藏