go-randomdata:生成多样化随机数据的Go工具库

A tiny generator of random data for golang, also known as a faker

分支2Tags3
文件最后提交记录最后更新时间
7 年前
9 年前
8 年前
6 年前
12 年前
7 年前
7 年前
8 年前
7 年前
6 年前
6 年前
6 年前
9 年前
6 年前

go-randomdata

欢迎贡献 Go 文档 构建状态 Go 报告卡

randomdata 是一个小型工具包,用于生成随机数据,例如:

  • 姓氏(男性或女性)
  • 名字(男性或女性)
  • 全名(男性或女性)
  • 国家名称(全名或 ISO 3166.1 alpha-2 或 alpha-3 编码)
  • 地区/语言标签(BCP-47)
  • 随机电子邮件地址
  • 城市名字
  • 美国州名(两个字符或全称)
  • 随机数(在给定区间内)
  • 随机段落
  • 随机布尔值
  • 符合各国格式的邮政编码/邮编
  • 美式地址/街道名
  • 搞笑的名字 —— 适用于事物名称
  • 随机日期
  • 随机月份
  • 随机完整日期
  • 随机完整档案
  • 范围内的随机日期
  • 随机电话号码

安装

go get github.com/Pallinder/go-randomdata

使用

package main

import (
    "fmt"
    "github.com/Pallinder/go-randomdata"
)

func main() {
    // 打印一个随机的搞笑名字
    fmt.Println(randomdata.SillyName())

    // 打印男性的头衔
    fmt.Println(randomdata.Title(randomdata.Male))

    // 打印女性的头衔
    fmt.Println(randomdata.Title(randomdata.Female))

    // 打印随机性别的头衔
    fmt.Println(randomdata.Title(randomdata.RandomGender))

    // 打印男性的名字
    fmt.Println(randomdata.FirstName(randomdata.Male))

    // 打印女性的名字
    fmt.Println(randomdata.FirstName(randomdata.Female))

    // 打印姓氏
    fmt.Println(randomdata.LastName())

    // 打印男性的全名
    fmt.Println(randomdata.FullName(randomdata.Male))

    // 打印女性的全名
    fmt.Println(randomdata.FullName(randomdata.Female))

    // 打印随机性别的全名
    fmt.Println(randomdata.FullName(randomdata.RandomGender))

    // 打印电子邮件
    fmt.Println(randomdata.Email())

    // 打印国家的全称
    fmt.Println(randomdata.Country(randomdata.FullCountry))

    // 用 ISO 3166-1 alpha-2 表示的国家
    fmt.Println(randomdata.Country(randomdata.TwoCharCountry))

    // 用 ISO 3166-1 alpha-3 表示的国家
    fmt.Println(randomdata.Country(randomdata.ThreeCharCountry))

    // 打印 BCP 47 语言标签
    fmt.Println(randomdata.Locale())

    // 打印 ISO 4217 的货币名称
    fmt.Println(randomdata.Currency())

    // 打印随机城市名
    fmt.Println(randomdata.City())

    // 打印随机美国大州名
    fmt.Println(randomdata.State(randomdata.Large))

    // 打印随机美国两字符州名
    fmt.Println(randomdata.State(randomdata.Small))

    // 打印美式街道名
    fmt.Println(randomdata.Street())

    // 打印美式地址
    fmt.Println(randomdata.Address())

    // 打印大于等于 10 并小于 20 的随机数
    fmt.Println(randomdata.Number(10, 20))

    // 打印大于等于 0 并小于 20 的随机数
    fmt.Println(randomdata.Number(20))

    // 打印大于等于 0 并小于 20 的随机浮点数,保留三位小数
    fmt.Println(randomdata.Decimal(0, 20, 3))

    // 打印大于等于 10 并小于 20 的随机浮点数
    fmt.Println(randomdata.Decimal(10, 20))

    // 打印大于等于 0 并小于 20 的随机浮点数
    fmt.Println(randomdata.Decimal(20))

    // 打印布尔值
    fmt.Println(randomdata.Boolean())

    // 打印段落
    fmt.Println(randomdata.Paragraph())

    // 打印邮政编码(以 "SE" 为例)
    fmt.Println(randomdata.PostalCode("SE"))

    // 打印一组以 "-" 分隔的两个随机数字字符串
    fmt.Println(randomdata.StringNumber(2, "-"))

    // 打印一组以 "-" 分隔的两个随机三位数字符串
    fmt.Println(randomdata.StringNumberExt(2, "-", 3))

    // 打印从一系列字符串中抽样的随机字符串
    fmt.Println(randomdata.StringSample("my string 1", "my string 2", "my string 3"))

    // 打印一个有效的随机 IPv4 地址
    fmt.Println(randomdata.IpV4Address())

    // 打印一个有效的随机 IPv6 地址
    fmt.Println(randomdata.IpV6Address())

    // 打印浏览器的用户代理字符串
    fmt.Println(randomdata.UserAgentString())

    // 打印一天
    fmt.Println(randomdata.Day())

    // 打印一个月
    fmt.Println(randomdata.Month())

    // 打印完整的日期,如:Monday 22 Aug 2016
    fmt.Println(randomdata.FullDate())

    // 打印不大于 Monday 22 Aug 2016 的随机完整日期
    fmt.Println(randomdata.FullDateInRange("2016-08-22"))

    // 打印不小于 Monday 01 Aug 2016 且不大于 Monday 22 Aug 2016 的随机完整日期
    fmt.Println(randomdata.FullDateInRange("2016-08-01", "2016-08-22"))

    // 打印符合 e.164 规范的电话号码
    fmt.Println(randomdata.PhoneNumber())

    // 获取一个通常用于用户的完整且随机化的数据档案
    // 个人资料中有许多字段可供使用,具体查看 fullprofile.go 中 Profile 结构体定义
    profile := randomdata.GenerateProfile(randomdata.Male|randomdata.Female|randomdata.RandomGender)
    fmt.Printf("新档案的用户名是:%s,密码(MD5):%s\n", profile.Login.Username, profile.Login.Md5)

    // 获取英国地区特定的随机街道名
    fmt.Println(randomdata.StreetForCountry("GB"))
    // 获取美国地区特定的随机街道名
    fmt.Println(randomdata.StreetForCountry("US"))

    // 获取英国地区的随机省份
    fmt.Println(randomdata.ProvinceForCountry("GB"))
    // 获取美国地区的随机省份
    fmt.Println(randomdata.ProvinceForCountry("US"))
}

版本控制与发布策略

Go-Randomdata 遵循 Semantic Versioning(语义化版本)

当前版本已标记在 发行版部分

项目的变更日志记录在 CHANGELOG.md 文件中。

贡献者

其余所有贡献者可在此处查看。

项目介绍

A tiny generator of random data for golang, also known as a faker

定制我的领域