Go语言技术文章
-
Go ast.FieldList.NumFields 统计参数或字段数量,List 长度统计声明组节点。本文用分组参数解释差值,说明匿名项、空列表和可变参数的计数语义,以及静态分析工具的调整方式。366 收藏 -
Golang · Go问答 | 3星期前 | net/http · HTTP客户端 · Go问答 · Transport gzip Content-Encoding Go 自动解压 Response Body
Go 的默认 Transport 可能已经把 gzip 响应解压到 Response.Body,并删除 Content-Encoding。读取内容为空时,应先区分自动解压、显式请求 gzip 和 Body 被重复读取这三条路径,再选择直接读取或手动创建 gzip.Reader。365 收藏 -
Go select 中的 default 会让没有就绪通信时立即返回。把它放进无限循环会形成忙等,持续消耗 CPU。本文用一个小型通道消费者区分阻塞等待、周期处理、取消退出和一次性非阻塞探测的正确写法。365 收藏 -
Go mod tidy 会扫描测试导入和构建标签,测试依赖被调整不一定是误删。本文用导入点、条件测试、-diff 预览和 CI 回归四个检查点,整理出可复查的模块依赖边界。365 收藏 -
sort.Find 适合在有序数据中同时处理匹配与未命中场景。本文用目标值与切片元素的三态比较说明如何定位相等元素的起点,解释 found、插入位置、重复值和比较方向的边界。365 收藏 -
sync.Pool 只能复用临时对象,不能替请求保存状态。通过明确 Get、使用、Put 的所有权边界,在归还前清空请求标识、错误和缓冲引用,并用指标区分池命中与状态泄漏。365 收藏 -
使用 github.com/google/uuid 时,无效 UUID 要看 Parse 返回的 error,零值 UUID 要与 uuid.Nil 比较。本文按解析、格式和业务边界说明三种结果如何区分。365 收藏 -
Go x/text/number 的 Scale 和 IncrementString 只改变数字的格式化结果,不会回写原始变量。本文用对照示例说明显示舍入、业务计算和输出边界应该怎样分开。365 收藏 -
区分 go-pretty 行列 AutoMerge 的作用范围,用最小 Go 示例说明重复内容的展示合并,并解释分组可读性、格式化文本及 CSV、Markdown 输出的边界。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 的 image.Point.In 判断坐标是否属于 image.Rectangle,理解左闭右开边界、非零起点和空矩形,并把判断接入点击与裁剪处理。365 收藏