国家
国家 - ISO 639、ISO 3166(ISO3166-1、ISO3166、数字、两字母、三字母)国家代码及其分区和名称(英文和俄文)、ISO4217货币代码、ITU-T E.164国际直拨电话代码、国家首都、UN M.49地区代码、IANA ccTLD国家域名、FIPS、IOC/NOC和FIFA代码,速度极快,无maps[]、无slices[]、无init()函数、无外部链接/文件/数据、无interface{}、无特定依赖,兼容数据库/JSON/BSON/GOB/XML/CSV,支持国家旗帜和货币表情符号,UN M.49,FIFA代码,完全支持ISO 639-1、ISO 3166-1、ISO 3166-2、ISO 4217、ITU-T E.164、Unicode CLDR和IANA ccTLD标准。
支持的标准:
- ISO 639-1
- ISO 3166-1
- ISO 3166-2
- ISO 4217
- ICANN
- IANA ccTLD
- ITU-T E.164
- IOC
- NOC
- FIFA
- FIPS
- UN M.49
- Unicode CLDR
- Unicode表情符号国旗
- Unicode表情符号货币
- UN世界各国首都
[徽章略]
安装
go get github.com/biter777/countries
使用
countryJapan := countries.Japan
fmt.Printf("国家英文名称: %v\n", countryJapan) // Japan
fmt.Printf("国家俄文名称: %v\n", countryJapan.StringRus()) // Япония
fmt.Printf("国家ISO-3166数字代码: %d\n", countryJapan) // 392
fmt.Printf("国家ISO-3166两字母代码: %v\n", countryJapan.Alpha2()) // JP
fmt.Printf("国家ISO-3166三字母代码: %v\n", countryJapan.Alpha3()) // JPN
fmt.Printf("国家IOC/NOC代码: %v\n", countryJapan.IOC()) // JPN
fmt.Printf("国家FIFA代码: %v\n", countryJapan.FIFA()) // JPN
fmt.Printf("国家FIPS代码: %v\n", countryJapan.FIPS()) // JA
fmt.Printf("国家首都: %v\n", countryJapan.Capital()) // Tokyo
fmt.Printf("国家ITU-T E.164电话代码: %v\n", countryJapan.CallCodes()) // +81
fmt.Printf("国家ccTLD域名: %v\n", countryJapan.Domain()) // .jp
fmt.Printf("国家UN M.49地区名称: %v\n", countryJapan.Region()) // Asia
fmt.Printf("国家UN M.49地区代码: %d\n", countryJapan.Region()) // 142
fmt.Printf("国家表情符号/旗帜: %v\n", countryJapan.Emoji()) // 🇯🇵
fmt.Printf("国家行政区划: %v\n", countryJapan.Subdivisions()) // Hokkaido Aomori Iwate Miyagi Akita Yamagata Fukushima Ibaraki Tochigi Gunma Saitama Chiba Tokyo Kanagawa Niigata Toyama Ishikawa Fukui Yamanashi Nagano Gifu Shizuoka Aichi Mie Shiga Kyoto Osaka Hyogo Nara Wakayama Tottori Shimane Okayama Hiroshima Yamaguchi Tokushima Kagawa Ehime Kochi Fukuoka Saga Nagasaki Kumamoto Oita Miyazaki Kagoshima Okinawa
currencyJapan := countryJapan.Currency()
fmt.Printf("国家ISO-4217货币英文名称: %v\n", currencyJapan) // Yen
fmt.Printf("国家ISO-4217货币数字代码: %d\n", currencyJapan) // 392
fmt.Printf("国家ISO-4217货币字母代码: %v\n", currencyJapan.Alpha()) // JPY
fmt.Printf("国家货币表情符号: %v\n", currencyJapan.Emoji()) // 💴
fmt.Printf("使用%v货币的国家: %v\n\n", currencyJapan, currencyJapan.Countries()) // Japan
// 或者你可以使用以下替代方式:
japanInfo := countries.Japan.Info()
fmt.Printf("国家英文名称: %v\n", japanInfo.Name) // Japan
fmt.Printf("国家ISO-3166数字代码: %d\n", japanInfo.Code) // 392
fmt.Printf("国家ISO-3166两字母代码: %v\n", japanInfo.Alpha2) // JP
fmt.Printf("国家ISO-3166三字母代码: %v\n", japanInfo.Alpha3) // JPN
fmt.Printf("国家IOC/NOC代码: %v\n", japanInfo.IOC) // JPN
fmt.Printf("国家FIFA代码: %v\n", japanInfo.FIFA) // JPN
fmt.Printf("国家FIPS代码: %v\n", japanInfo.FIPS) // JA
fmt.Printf("国家首都: %v\n", japanInfo.Capital) // Tokyo
fmt.Printf("国家ITU-T E.164电话代码: %v\n", japanInfo.CallCodes) // +81
fmt.Printf("国家ccTLD域名: %v\n", japanInfo.Domain) // .jp
fmt.Printf("国家UN M.49地区名称: %v\n", japanInfo.Region) // Asia
fmt.Printf("国家联合国M.49地区代码:%d\n", japanInfo.Region) // 142
fmt.Printf("国家表情/旗帜:%v\n", japanInfo.Emoji) // 🇯🇵
fmt.Printf("国家ISO-4217货币英文名称:%v\n", japanInfo.Currency) // 日元
fmt.Printf("国家ISO-4217货币数字代码:%d\n", japanInfo.Currency) // 392
fmt.Printf("国家ISO-4217货币字母代码:%v\n", japanInfo.Currency.Alpha()) // JPY
fmt.Printf("国家行政区划:%v\n", japanInfo.Subdivisions) // 北海道 青森 岩手 宫城 秋田 山形 福岛 茨城 栃木 群马 埼玉 千叶 东京 神奈川 新潟 富山 石川 福井 山梨 长野 岐阜 静冈 爱知 三重 滋贺 京都 大阪 兵库 奈良 和歌山 鸟取 岛根 冈山 广岛 山口 德岛 香川 爱媛 高知 福冈 佐贺 长崎 熊本 大分 宫崎 鹿儿岛 冲绳
// 检测/查找用法
// 通过国家名称检测/查找
country := countries.ByName("angola")
fmt.Printf("国家英文名称:%v\n", country) // 安哥拉
fmt.Printf("国家ISO-3166数字代码:%d\n", country) // 24
fmt.Printf("国家ISO-3166 Alpha-2代码:%v\n", country.Alpha2()) // AO
fmt.Printf("国家ISO-3166 Alpha-3代码:%v\n", country.Alpha3()) // AGO
// 通过国家代码检测/查找
country = countries.ByName("AO")
fmt.Printf("国家英文名称:%v\n", country.String()) // 安哥拉
fmt.Printf("国家ISO-3166数字代码:%d\n", country) // 24
fmt.Printf("国家ISO-3166 Alpha-2代码:%v\n", country.Alpha2()) // AO
fmt.Printf("国家ISO-3166 Alpha-3代码:%v\n", country.Alpha3()) // AGO
// 通过代码/数字检测/查找
country = countries.ByNumeric(24)
fmt.Printf("国家英文名称:%v\n", country) // 安哥拉
fmt.Printf("国家ISO-3166数字代码:%d\n", country) // 24
fmt.Printf("国家ISO-3166 Alpha-2代码:%v\n", country.Alpha2()) // AO
fmt.Printf("国家ISO-3166 Alpha-3代码:%v\n", country.Alpha3()) // AGO
// 比较用法
// 通过代码/数字比较
if countries.ByName("angola") == countries.AGO {
fmt.Println("是的!这是安哥拉!") // 是的!这是安哥拉!
}
// 通过名称比较
if strings.EqualFold("angola", countries.AGO.String()) {
fmt.Println("是的!这是安哥拉!") // 是的!这是安哥拉!
}
// 数据库用法
type User struct {
gorm.Model
Name string
Country countries.CountryCode
Currency countries.CurrencyCode
}
user := &User{Name: "Helen", Country: countries.Slovenia, Currency: countries.CurrencyEUR}
db, err := gorm.Open("postgres", 500, "host=127.0.0.2 port=5432 user=usr password=1234567 dbname=db")
if err != nil {
panic(err)
}
defer db.Close()
db.Create(user)
选项
使用Emoji()来获取表情符号。尽情享用!
import "github.com/biter777/countries"
更多复杂选项,请参考文档。
贡献
-
欢迎提交拉取请求、修复错误和问题报告
-
捐赠 - 捐赠不是必需的,但我们欢迎。
-
给我们星标 - 如果不违反您的信仰,请给我们一个星标 :)
更新ISO 3166
利用iso-codes项目的变更。
待办事项 创建go generate功能,以自动从iso-codes项目的data目录中的json文件生成。