很多刚入门 Go 的同学都会遇到一些“小麻烦”:

  • 判断字符串是不是空?
  • 想给数字补 0?
  • 想截断一个字符串?

其实这些问题,go-commons 都帮你准备好了。
下面我用问答的方式,带你 10 分钟入门这个开源项目。


Q1:我要怎么安装?

只需要一行命令:

go get github.com/Rodert/go-commons

Go 会自动把它下载到你的项目里。


Q2:我怎么在 main.go 里用?

来个最简单的例子。
先写一个 main.go

package main

import (
    "fmt"

    "github.com/Rodert/go-commons/stringutils"
)

func main() {
    str1 := ""
    str2 := "   "
    str3 := "golang"

    fmt.Println("IsEmpty:", stringutils.IsEmpty(str1))   // true
    fmt.Println("IsBlank:", stringutils.IsBlank(str2))   // true
    fmt.Println("Capitalize:", stringutils.Capitalize(str3)) // "Golang"
    fmt.Println("Truncate:", stringutils.Truncate("Hello, World!", 5)) // "Hello"
}

运行:

go run main.go

你会看到输出:

IsEmpty: true
IsBlank: true
Capitalize: Golang
Truncate: Hello

Q3:如果我想补齐字符串,像数字补零呢?

只要调用 LeftPadRightPad

fmt.Println(stringutils.LeftPad("7", 3, "0"))   // "007"
fmt.Println(stringutils.RightPad("7", 3, "0"))  // "700"

Q4:如果我想要更多示例?

你可以试试这些:

fmt.Println(stringutils.Contains("golang", "go"))     // true
fmt.Println(stringutils.LowerCase("GoLang"))          // "golang"
fmt.Println(stringutils.UpperCase("golang"))          // "GOLANG"
fmt.Println(stringutils.TruncateWithSuffix("abcdefg", 4, "...")) // "a..."

Q5:除了字符串,未来还有啥?

仓库里还有一个 systemutils 包,目前正在逐步开发,将来可以直接获取:

  • CPU 信息
  • 内存使用情况
  • 磁盘空间

比如将来可能是这样的用法:

import "github.com/Rodert/go-commons/systemutils"

func main() {
    cpu := systemutils.CPUInfo()
    fmt.Println(cpu)
}

Q6:这个库适合谁?

  • 新手:不用每次都写重复的小函数,省时间
  • 项目组:少依赖,纯标准库实现,更安全
  • 喜欢造轮子的人:你也可以参与贡献,把自己的工具方法放进去

结语

一句话总结:
👉 如果你想更轻松写 Go,就用 go-commons。

go get 开始,复制上面的 main.go,你就能马上跑起来。