背景
在开发项目的过程中,经常会需要生成一些国内的地址数据。在之前使用 PHP 和 Node.js 开发时,我曾经使用过一些中国地址生成的扩展包,帮助快速生成符合规范的地址数据。然而,在转向 Golang 进行项目开发时,却没有找到合适的地址生成工具。因此,我决定自己编写一个 Golang 的中国地址生成包,以便在今后的开发中可以方便地使用。
包地址
1 2
| https://github.com/GoFinalPack/chinese-address-generator
|
使用
安装依赖
1 2
| go get github.com/GoFinalPack/chinese-address-generator@v1.0.0
|
PS: 目前更新到 v1.0.0 版本
代码中使用
- 生成一级地址
1 2 3 4 5
| g := chineseaddressgenerator.Generator{} g.Init() level1 := g.GenerateLevel1() fmt.Println(level1)
|
- 生成二级地址
1 2 3 4 5
| g := chineseaddressgenerator.Generator{} g.Init() level2 := g.GenerateLevel2() fmt.Println(level2)
|
- 生成三级地址
1 2 3 4
| g := chineseaddressgenerator.Generator{} g.Init() level3 := g.GenerateLevel3() fmt.Println(level3)
|
- 生成四级地址
1 2 3 4 5
| g := chineseaddressgenerator.Generator{} g.Init() level4 := g.GenerateLevel4() fmt.Println(level4)
|
- 生成完整的地址
1 2 3 4 5
| g := chineseaddressgenerator.Generator{} g.Init() fullAddress := g.FabricateFullAddress() fmt.Println(fullAddress)
|
PS: 上面的地址纯属编造, 如有雷同,纯属巧合,生成规则:(001-1400)号(101-909)室
包结构
1 2 3 4 5 6 7 8 9 10 11 12 13
| . ├── README.md ├── generator.go ├── go.mod ├── tests │ ├── generator_test.go │ └── readLeave_test.go └── utils ├── data │ ├── level3.json │ └── level4.txt └── utils.go
|
level3.json 文件中 存储的是 省 市 区
level4.txt 文件中 存储的是 街道乡镇 等数据, 已打包到了 扩展包中
其他语言的扩展包
1 2 3 4 5
| https://github.com/NiZerin/chinese-address-generator/tree/main PHP
https://github.com/moonrailgun/chinese-address-generator Node
|
这些扩展包提供了类似的功能,可以在不同的开发环境中使用,帮助你生成符合中国地址规范的数据。