Go第三方庫(kù)faker假數(shù)據(jù)生成器
一、介紹
bxcodec/faker 是 Go 語(yǔ)言中造數(shù)據(jù)利器的第三方庫(kù),它非常適用于開發(fā)過程中需要填充數(shù)據(jù)庫(kù)、創(chuàng)建測(cè)試數(shù)據(jù)??梢陨筛鞣N類型的假數(shù)據(jù),包括字符串、數(shù)字、日期、布爾值、地址、姓名、郵箱、手機(jī)號(hào)、身份證號(hào)等。
二、安裝并引入包
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("生成的電話號(hào)碼:", 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)
}
輸入結(jié)果:
// 生成的中文姓名: 公鴻德
// 生成的姓名: Lady Audie Reynolds
// 生成的郵箱地址: KpmPJgl@LGdKqxc.com
// 生成的密碼: lpvaGDZQBAxZUgkPsSQuajHnskjHFsceadUNtsscEpvsbUgASe
// 生成的電話號(hào)碼: 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)建一個(gè)結(jié)構(gòu)體并使用 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)
}
輸出結(jié)果:
結(jié)構(gòu)體不加標(biāo)簽的情況下,生成的是隨機(jī)數(shù)據(jù)
// 使用 faker 生成數(shù)據(jù):{Name:RaBpPTROBtlhQniRnZAOEiZCf ChineseName:kjMwmcaZXiEJujSWwgfCrbbJi Age:58 Gender:sFChOFrrNVBMLChsTZHVHrMnJ Email:pscrGGDfMxuRcAjWQgkMlirls}
結(jié)構(gòu)體加標(biāo)簽的情況下,生成的是符合標(biāo)簽要求的數(shù)據(jù)
// 使用 faker 生成數(shù)據(jù):{Name:Mrs. Caleigh Miller ChineseName:歐陽(yáng)鴻朗 Age:11 Gender:Male Email:cEFZfXy@xNgWDUE.net}
到此這篇關(guān)于Go第三方庫(kù)faker假數(shù)據(jù)生成器的文章就介紹到這了,更多相關(guān)Go第三方庫(kù)faker數(shù)據(jù)生成器內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Golang map如何生成有序的json數(shù)據(jù)詳解
- 使用Django清空數(shù)據(jù)庫(kù)并重新生成
- Django數(shù)據(jù)庫(kù)表反向生成實(shí)例解析
- django重新生成數(shù)據(jù)庫(kù)中的某張表方法
- xorm根據(jù)數(shù)據(jù)庫(kù)生成go model文件的操作
- golang 生成對(duì)應(yīng)的數(shù)據(jù)表struct定義操作
- mongodb 數(shù)據(jù)生成Insert 語(yǔ)句的示例代碼
- Django生成數(shù)據(jù)庫(kù)及添加用戶報(bào)錯(cuò)解決方案
- 使用golang生成prometheus格式數(shù)據(jù)
相關(guān)文章
自己動(dòng)手用Golang實(shí)現(xiàn)約瑟夫環(huán)算法的示例
這篇文章主要介紹了自己動(dòng)手用Golang實(shí)現(xiàn)約瑟夫環(huán)算法的示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
Go到底能不能實(shí)現(xiàn)安全的雙檢鎖(推薦)
這篇文章主要介紹了Go到底能不能實(shí)現(xiàn)安全的雙檢鎖,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05
Golang中如何使用lua進(jìn)行擴(kuò)展詳解
這篇文章主要給大家介紹了關(guān)于Golang中如何使用lua進(jìn)行擴(kuò)展的相關(guān)資料,這是最近在工作中遇到的一個(gè)問題,覺著有必要分享出來給大家學(xué)習(xí),文中給出了詳細(xì)的示例,需要的朋友可以參考借鑒,下面來一起看看吧。2017-10-10
Golang使用singleflight解決并發(fā)重復(fù)請(qǐng)求
高并發(fā)的場(chǎng)景下,經(jīng)常會(huì)出現(xiàn)并發(fā)重復(fù)請(qǐng)求資源的情況,singleflight是golang內(nèi)置的一個(gè)包,這個(gè)包提供了對(duì)重復(fù)函數(shù)調(diào)用的抑制功能,所以下面我們就來看看如何使用它解決并發(fā)重復(fù)請(qǐng)求吧2023-08-08
GO語(yǔ)言內(nèi)存逃逸和GC機(jī)制的實(shí)現(xiàn)
本文深入解析Go語(yǔ)言的內(nèi)存管理機(jī)制,重點(diǎn)介紹內(nèi)存逃逸和GC機(jī)制,包括指針逃逸、接口類型逃逸等7種典型場(chǎng)景,下面就來詳細(xì)的介紹一下2026-06-06
Golang實(shí)現(xiàn)根據(jù)某個(gè)特定字段對(duì)結(jié)構(gòu)體的順序進(jìn)行排序
這篇文章主要為大家詳細(xì)介紹了Golang如何實(shí)現(xiàn)根據(jù)某個(gè)特定字段對(duì)結(jié)構(gòu)體的順序進(jìn)行排序,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-03-03
Golang Socket Server自定義協(xié)議的簡(jiǎn)單實(shí)現(xiàn)方案
這篇文章主要介紹了Golang Socket Server自定義協(xié)議的簡(jiǎn)單實(shí)現(xiàn)方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-12-12
詳解golang中發(fā)送http請(qǐng)求的幾種常見情況
這篇文章主要介紹了詳解golang中發(fā)送http請(qǐng)求的幾種常見情況,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12

