Go第三方庫faker假數(shù)據(jù)生成器
一、介紹
bxcodec/faker 是 Go 語言中造數(shù)據(jù)利器的第三方庫,它非常適用于開發(fā)過程中需要填充數(shù)據(jù)庫、創(chuàng)建測試數(shù)據(jù)??梢陨筛鞣N類型的假數(shù)據(jù),包括字符串、數(shù)字、日期、布爾值、地址、姓名、郵箱、手機號、身份證號等。
二、安裝并引入包
go get github.com/bxcodec/faker/v3
import "github.com/bxcodec/faker/v3"
三、生成假數(shù)據(jù)
3.1 使用 faker 提供的各種函數(shù)生成假數(shù)據(jù)
package main
import (
"fmt"
"github.com/bxcodec/faker/v3"
)
func main() {
chineseName := faker.ChineseName()
fmt.Println("生成的中文姓名:", chineseName)
name := faker.Name()
fmt.Println("生成的姓名:", name)
email := faker.Email()
fmt.Println("生成的郵箱地址:", email)
pwd := faker.Password()
fmt.Println("生成的密碼:", pwd)
phoneNumber := faker.Phonenumber()
fmt.Println("生成的電話號碼:", phoneNumber)
gender := faker.Gender()
fmt.Println("生成的性別:", gender)
year := faker.YearString()
fmt.Println("生成的年份:", year)
ipv4 := faker.IPv4()
fmt.Println("生成IPv4:", ipv4)
ipv6 := faker.IPv6()
fmt.Println("生成IPv6:", ipv6)
macAddress := faker.MacAddress()
fmt.Println("生成mac地址:", macAddress)
domainName := faker.DomainName()
fmt.Println("生成域名:", domainName)
url := faker.URL()
fmt.Println("生成URL:", url)
uuiddigit := faker.UUIDDigit()
fmt.Println("生成UUID:", uuiddigit)
}
輸入結果:
// 生成的中文姓名: 公鴻德
// 生成的姓名: Lady Audie Reynolds
// 生成的郵箱地址: KpmPJgl@LGdKqxc.com
// 生成的密碼: lpvaGDZQBAxZUgkPsSQuajHnskjHFsceadUNtsscEpvsbUgASe
// 生成的電話號碼: 723-956-1041
// 生成的性別: Prefer to skip
// 生成的年份: 1986
// 生成IPv4: 53.220.70.183
// 生成IPv6: 64c0:1ca7:5a29:6207:6ab1:85b0:5b12:9c0d
// 生成mac地址: 7a:64:29:77:11:34
// 生成域名: GMqvyDy.info
// 生成URL: https://www.lAXxXgd.net/
// 生成UUID: 8369bbc3e1944a1aa871dc51228ed1e
3.2 創(chuàng)建一個結構體并使用 faker 填充數(shù)據(jù)
package main
import (
"fmt"
"github.com/bxcodec/faker/v3"
)
type Person struct {
Name string
ChineseName string
Age int
Gender string
Email string
}
type _Person struct {
Name string `faker:"name"`
ChineseName string `faker:"chinese_name"`
Age int
Gender string `faker:"gender"`
Email string `faker:"email"`
}
func main() {
var person Person
var _person _Person
if err := faker.FakeData(&person); err != nil {
fmt.Println(err)
return
}
fmt.Printf("使用 faker 生成數(shù)據(jù):%+v\n", person)
if err := faker.FakeData(&_person); err != nil {
fmt.Println(err)
return
}
fmt.Printf("使用 faker 生成數(shù)據(jù):%+v\n", _person)
}
輸出結果:
結構體不加標簽的情況下,生成的是隨機數(shù)據(jù)
// 使用 faker 生成數(shù)據(jù):{Name:RaBpPTROBtlhQniRnZAOEiZCf ChineseName:kjMwmcaZXiEJujSWwgfCrbbJi Age:58 Gender:sFChOFrrNVBMLChsTZHVHrMnJ Email:pscrGGDfMxuRcAjWQgkMlirls}
結構體加標簽的情況下,生成的是符合標簽要求的數(shù)據(jù)
// 使用 faker 生成數(shù)據(jù):{Name:Mrs. Caleigh Miller ChineseName:歐陽鴻朗 Age:11 Gender:Male Email:cEFZfXy@xNgWDUE.net}
到此這篇關于Go第三方庫faker假數(shù)據(jù)生成器的文章就介紹到這了,更多相關Go第三方庫faker數(shù)據(jù)生成器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
自己動手用Golang實現(xiàn)約瑟夫環(huán)算法的示例
這篇文章主要介紹了自己動手用Golang實現(xiàn)約瑟夫環(huán)算法的示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-12-12
Golang使用singleflight解決并發(fā)重復請求
高并發(fā)的場景下,經(jīng)常會出現(xiàn)并發(fā)重復請求資源的情況,singleflight是golang內(nèi)置的一個包,這個包提供了對重復函數(shù)調(diào)用的抑制功能,所以下面我們就來看看如何使用它解決并發(fā)重復請求吧2023-08-08
Golang實現(xiàn)根據(jù)某個特定字段對結構體的順序進行排序
這篇文章主要為大家詳細介紹了Golang如何實現(xiàn)根據(jù)某個特定字段對結構體的順序進行排序,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2024-03-03
Golang Socket Server自定義協(xié)議的簡單實現(xiàn)方案
這篇文章主要介紹了Golang Socket Server自定義協(xié)議的簡單實現(xiàn)方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12

