Quick Start - zhoudm1743/go-util GitHub Wiki
欢迎使用 Go-Util!本指南将帮助您在 5 分钟内开始使用这个强大的工具库。
🚀 安装
# 安装核心库
go get github.com/zhoudm1743/go-util
# 可选:安装独立包
go get github.com/zhoudm1743/go-util/jsonx
go get github.com/zhoudm1743/go-util/jwt
⚡ 第一个示例
package main
import (
"fmt"
util "github.com/zhoudm1743/go-util"
)
func main() {
// 🔤 字符串操作
result := util.Str("hello_world_go").
Snake2BigCamel(). // "HelloWorldGo"
Lower(). // "helloworldgo"
FirstUpper(). // "Helloworldgo"
String()
fmt.Println(result)
// 📊 数组操作
numbers := util.Arrays(1, 2, 3, 4, 5).
Filter(func(n int) bool { return n%2 == 0 }). // [2, 4]
Map(func(n int) int { return n * 3 }). // [6, 12]
ToSlice()
fmt.Println(numbers)
// ⏰ 时间操作
now := util.Now()
future := now.AddDays(7).FormatChinese()
fmt.Printf("一周后: %s\n", future)
}
🎯 核心概念
链式调用
Go-Util 的核心设计理念是链式调用,让代码更优雅:
// 传统写法
users := []User{...}
activeUsers := []User{}
for _, user := range users {
if user.IsActive {
activeUsers = append(activeUsers, user)
}
}
emails := []string{}
for _, user := range activeUsers {
if isValidEmail(user.Email) {
emails = append(emails, user.Email)
}
}
sort.Strings(emails)
// Go-Util 链式写法
emails := util.Array(users).
Filter(func(u User) bool { return u.IsActive }).
Map(func(u User) string { return u.Email }).
Filter(func(email string) bool { return util.Str(email).IsEmail() }).
Sort().
ToSlice()
类型安全
利用 Go 1.18+ 的泛型特性,提供编译时类型检查:
numbers := util.Arrays(1, 2, 3, 4, 5) // XArray[int]
strings := util.Arrays("a", "b", "c") // XArray[string]
// 编译时错误检查
result := numbers.Map(func(n int) string {
return fmt.Sprintf("num_%d", n)
}) // XArray[string]
📖 下一步
- 📚 基础概念详解
- 🔤 字符串工具指南
- 📊 数组工具指南
- 🚀 JSONx 完整指南
- 🔐 JWT 完整指南