Go教程技术文章
-
sync.Pool 只能复用临时对象,不能替请求保存状态。通过明确 Get、使用、Put 的所有权边界,在归还前清空请求标识、错误和缓冲引用,并用指标区分池命中与状态泄漏。365 收藏 -
Go 用 slices.IndexFunc 按条件查找切片时,会返回第一个满足判断的元素索引;如果没有匹配项则返回 -1。本文说明空切片、重复匹配、结构体字段判断、Index 对比和旧工具链降级写法。453 收藏 -
用 Go log/slog.Value.Resolve 展开 LogValuer 延迟字段,说明自定义 Handler 如何遍历 Record.Attrs、处理 Group,以及递归和错误边界。190 收藏 -
Go slog 通过 With 创建请求专属日志器并显式传递,区分请求属性与事件属性,排查字段丢失、请求串号及 Context 自动取值误区。158 收藏 -
Go 拼接 API 根地址和资源路径时,不要靠字符串加斜杠。url.JoinPath 会统一路径分隔符并清理 .、..;如果某个变量本身是一个含斜杠的数据段,再先用 url.PathEscape。245 收藏 -
Go 的 net/url 适合把地址拆成 URL 结构,再用 Values、JoinPath 和 String 重建。本文给出查询参数、路径转义、相对地址和请求 URI 的处理边界。194 收藏 -
用 Go hex.NewDecoder 把十六进制字符流包装成 io.Reader,说明 io.ReadAll、分块读取、奇数长度和非法字符的处理方式。284 收藏 -
FormatFloat 返回字符串,AppendFloat 追加到字节切片。通过读数文本示例比较结果类型、相同格式参数、缓冲区复用和异步交付责任,说明容量不是上限、追加不等于零分配。191 收藏 -
Go regexp.FindAllString 返回的是每次完整正则命中的文本。本文用一个日志片段提取小工具说明 n 参数、无匹配、空匹配,以及它和捕获组、字节下标 API 的区别。416 收藏 -
使用 Go base64.NewEncoder 和 io.Copy 流式编码文件,避免一次性读取大文件,并正确处理 Close 收尾、填充和错误返回。236 收藏 -
用 strconv.AppendFloat 生成浮点文本时,format 决定外形,prec 决定小数位或有效数字,bitSize 决定按 float32 还是 float64 的语义格式化;本文给出参数组合和缓冲区追加写法。300 收藏 -
sort.Find 适合在有序数据中同时处理匹配与未命中场景。本文用目标值与切片元素的三态比较说明如何定位相等元素的起点,解释 found、插入位置、重复值和比较方向的边界。365 收藏 -
用 slices.AppendSeq 将有限迭代器追加到已有切片,保留前缀并接回返回值。通过原创示例说明追加顺序、nil 与空序列、容量复用、共享别名和复制边界,以及大规模结果的收集取舍。473 收藏 -
Go bytes.FieldsFunc 接收 rune 判定函数,按 UTF-8 字符边界切分 []byte,并自动丢弃连续、首尾分隔符产生的空片段。本文用中文和混合符号示例讲清它与 Split、复制策略的差异。139 收藏 -
Go 需要把一个切片模式重复多次时,可以使用 slices.Repeat。本文说明它如何计算结果长度、如何处理 count 边界,以及它与 make、Clone 的区别。337 收藏