Go教程技术文章
-
sync.Pool 只能复用临时对象,不能替请求保存状态。通过明确 Get、使用、Put 的所有权边界,在归还前清空请求标识、错误和缓冲引用,并用指标区分池命中与状态泄漏。365 收藏 -
使用 github.com/google/uuid 时,无效 UUID 要看 Parse 返回的 error,零值 UUID 要与 uuid.Nil 比较。本文按解析、格式和业务边界说明三种结果如何区分。365 收藏 -
Go 的 bufio.Scanner 默认 token 缓冲有限,读取超长日志行时可能提前停止。本文用 Scanner.Buffer 调整初始缓冲和最大上限,说明调用时机、错误处理,以及何时应改用 bufio.Reader。365 收藏 -
Go 字符串按字节截断时可能切断中文或表情的 UTF-8 编码。本文用 unicode/utf8.ValidString、range 和 RuneLen 实现按字节上限保留完整 rune,并说明非法输入、零值上限与字符数限制的区别。365 收藏 -
Golang · Go教程 | 1星期前 | 标准库 · csv · Go教程 · 数据导入 · 制表符 Go ReadAll read encoding/csv CSV读取 TSV Reader.Comma
Go encoding/csv.Reader 默认把逗号当作字段分隔符;读取 TSV 或制表符文本时,应在第一次 Read 或 ReadAll 前把 Comma 设置为 '\t'。本文说明有效分隔符约束、引号与空白边界,以及 Read 和 ReadAll 的错误处理方式。365 收藏 -
Go os.CreateTemp 可以用随机文件名安全创建临时文件,但关闭文件和删除路径仍由调用方负责。本文说明目录参数、星号模式、扩展名保留、错误处理,以及单文件和临时目录的选择。365 收藏 -
说明Go cgo中GoString与GoStringN的选择,用完整示例区分NUL文本和带长度数据,讲清复制、C内存释放责任、内嵌零字节与编码边界。365 收藏 -
Go 使用 bufio.Scanner 读取超长行时,默认缓冲可能触发 token too long。本文说明如何在首次 Scan 前调用 Buffer 设置初始缓冲与最大 token,并梳理 Err 检查、内存边界和切换 bufio.Reader 的判断。364 收藏 -
用 Go httptrace 拆分 DNS、TCP/TLS、连接复用、写请求和首字节耗时,配合完整示例定位 HTTP 客户端慢在解析、建连还是服务端等待。364 收藏 -
Go 的 image/color.RGBA64 用四个 uint16 表示每通道 16 位的 alpha 预乘颜色。本文从常见的通道值困惑出发,说明字段创建、Color.RGBA 转换、取值范围和 RGBA64 与 NRGBA64 的选择边界。364 收藏 -
Go encoding/csv 的 Reader.FieldPos 可以把最近一次 Read 返回的字段映射回原始 CSV 的行列位置。本文用多行引号字段说明调用时机、1-based 坐标、字节列号和常见误区。364 收藏 -
Windows-1252 旧文件不能直接当作 UTF-8 读取。本文用 golang.org/x/text/encoding/charmap 的 Decoder 说明内存转换、流式读取和写回旧编码时的字符边界。364 收藏 -
ants 池满时,WithMaxBlockingTasks 可以限制等待空闲工作协程的 Submit 调用数量;超过上限会返回 ErrPoolOverload。本文说明它与池容量、WithNonblocking、监控指标和回滚策略的区别。364 收藏 -
使用 go-flags 的 Completer 接口为自定义命令行值返回前缀匹配候选,解释 Completion 的字段、指针接收者、choice 标签与空前缀处理。364 收藏 -
用 Go unique.Make 将可比较字符串规范化为 unique.Handle,解释句柄比较、Value 取值、并发安全和不适用场景。364 收藏