提升生产力的 Golang 实用工具推荐,让开发更轻松!
在开发 Golang 项目过程中,我断断续续地编写了一些实用的扩展包,用以简化日常开发任务。这些工具覆盖了从地址生成、数据脱敏、文本处理到时间和数组处理等多个方面。以下是这些扩展包的详细介绍及使用示例。
1. [chinese-address-generator]
chinese-address-generator
专注于生成中国地区的地址信息,适用于测试数据生成或表单预填充场景。该包优化了 PHP 和 Node.js 的类似功能,以适应 Golang 项目需求。
GitHub 地址: chinese-address-generator
特性
- 支持生成省、市、区、县四级地址。
- 提供完整的虚拟地址生成方法,方便模拟数据。
安装
go get github.com/GoFinalPack/chinese-address-generator@v1.0.0
使用示例
g := chineseaddressgenerator.Generator{}
g.Init()
level1 := g.GenerateLevel1() // 生成一级地址
fmt.Println(level1) // {"code": "230000", "region": "黑龙江省"}
level4 := g.GenerateLevel4() // 生成四级地址
fmt.Println(level4) // {"code": "310113111000", "region": "上海市市辖区宝山区高境镇"}
fullAddress := g.FabricateFullAddress() // 生成完整地址
fmt.Println(fullAddress) // 完整地址信息
2. [pf_util]
pf_util
是一个用于信息脱敏的工具包,处理身份证号、手机号、邮箱等敏感信息。适用于对隐私数据进行保护。
GitHub 地址: pf_util
特性
- 支持多种类型的脱敏,包括身份证号、手机号码等。
- 支持自定义脱敏规则,满足多样化需求。
安装
go get github.com/GoFinalPack/pf_util@v1.0.0
使用示例
d := pf_util.DesensitizedUtil{}
res := d.SetType(2).Desensitized("51343620000320711X") // 身份证脱敏
fmt.Println(res) // 5***************1X
3. [auto-correct]
auto-correct
是一个用于自动调整中英文之间空格并修正专有名词大小写的工具,适合保持文档一致性。
GitHub 地址: auto-correct
特性
- 自动在中英文之间添加适当的空格。
- 修正专有名词大小写,支持自定义词典。
安装
go get -u github.com/GoFinalPack/auto-correct@v1.0.0
使用示例
a := auto_correct.AutoCorrect{}
a.Init()
text := "golang 使用中文测试"
fmt.Println(a.Correct(text)) // Golang 使用中文测试
4. [unique]
unique
是一个用于生成唯一字符串的小工具,常用于高并发环境下的数据唯一性保障。
GitHub 地址: unique
特性
- 基于时间戳生成唯一 ID。
- 支持雪花算法生成唯一 ID。
安装
go get github.com/GoFinalPack/unique@v1.0
使用示例
u := &Unique{}
fmt.Println(u.GetUniqueCodeBySnowflake().String()) // 生成雪花算法ID
5. [sectioning]
sectioning
提供对数组和切片的常用操作,适合处理复杂数据结构时使用。
GitHub 地址: sectioning
特性
- 支持数组元素查找、删除、唯一提取、排序等操作。
- 提供简便的数组和切片操作函数。
安装
go get github.com/GoFinalPack/sectioning@v1.0
使用示例
intSlice := []int{1, 2, 3, 7, 0, 4, 7}
b := Shuffle(intSlice)
fmt.Println(b) // 打乱后的切片
6. [carbon]
carbon
是一个类似于 Laravel Carbon 的时间处理包,专门为 Golang 开发,虽然较早开发,但仍适用于多个项目。
GitHub 地址: carbon
安装
go get github.com/GoFinalPack/carbon@v1.0
使用示例
t := &carbon.Carbon{}
fmt.Println(t.Now()) // 获取当前时间
fmt.Println(t.TimestampToDate(1640844203, "Ymd")) // 时间戳转日期
总结
上述扩展包是我在日常开发工作中编写的一些常用工具,覆盖了多个常见的开发场景。如果这些工具能够帮助你提升开发效率,请随时在项目中使用。