Go标准库没有名为pkg或tools的通用工具包,常用工具函数分布在strings、strconv、filepath、bytes等专用子包中,各司其职覆盖90%日常需求。
Go 标准库本身没有叫 pkg 或 tools 的“工具函数包”,也没有名为 package _(下划线包)的通用工具集。你提到的 package _ 通常用于**仅导入以触发包的初始化函数(如 init())**,而非提供可调用的工具函数。真正提供常用工具函数的是多个具体的标准库子包,比如 strings、strconv、path/filepath、bytes、sort、reflect 等。
这是最常被使用的工具包之一,提供大小写转换、查找、分割、替换等非正则操作。
strings.TrimSpace(s):去掉首尾空白字符(包括 \n、\t、空格)strings.Split(s, ","):按分隔符切片,返回 []string
strings.Join(ss, "-"):把字符串切片用指定分隔符拼接成单个字符串strings.Contains(s, "go"):判断是否包含子串strings.Title(s)(已弃用,推荐用 cases.Title)或 strings.ToUpper/ToLower
安全、高效的类型转换核心包,避免 panic,返回 error 可显式检查。
strconv.Atoi("42") → int, error
strconv.ParseFloat("3.14", 64) → float64, error
strconv.Itoa(123) → "123"(仅限 int)strconv.FormatBool(true) → "true"
strconv.Unquote(`"hello"`) → 去掉引号并解析转义(如 "\\n" → "\n")跨平台处理文件路径,自动适配 Windows/Linux/macOS 的路径分隔符。
立即学习“go语言免费学习笔记(深入)”;
filepath.Join("a", "b", "c.txt") → "a/b/c.txt"(Windows 下为 "a\b\c.txt")filepath.Base("/tmp/file.go") → "file.go"
filepath.Dir("/tmp/file.go") → "/tmp"
filepath.Ext("image.png") → ".png"
filepath.WalkDir(root, fn):遍历目录树(推荐替代旧版 Walk)功能几
乎与 strings 完全对应,但操作对象是 []byte,适合处理二进制数据或避免频繁 string/[]byte 转换。
bytes.Equal(a, b):安全比较两个字节切片(比 == 更可靠)bytes.Contains(b, []byte("err"))bytes.ReplaceAll(b, []byte("old"), []byte("new"))bytes.Fields(b):按空白字符分割(类似 strings.Fields)bytes.Buffer 构建高效字符串拼接器(比 + 或 fmt.Sprintf 更省内存)不复杂但容易忽略:标准库设计强调“小而专”,没有所谓“万能工具包”。掌握几个高频子包(strings、strconv、filepath、bytes、sort、time)就覆盖了 90% 日常需求。不需要额外引入第三方,也不用写 import _ "xxx" 来“加载工具函数”——直接导入并使用即可。