1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        「GoCN酷Go推薦」Gofakeit 數(shù)據(jù)生成工具

        共 9077字,需瀏覽 19分鐘

         ·

        2021-11-19 09:12



        Gofakeit 是一款Go語言編寫的隨機(jī)數(shù)據(jù)生成工具,使用更易用的接口設(shè)計,可滿足日常開發(fā)中絕大多數(shù)數(shù)據(jù)生成場景

        • Gofakeit讓您以更優(yōu)雅的姿勢生成測試數(shù)據(jù)。

        • Gofakeit內(nèi)置160+函數(shù),同時也很方便自定義。

        功能

        • 160+內(nèi)置函數(shù)!!!
        • 多個rand源
        • 全局rand
        • 支持struct tag
        • 支持自定義函數(shù)
        • 內(nèi)置http server
        • 內(nèi)置command line tool
        • 0依賴
        • 高性能

        安裝

        ????import?"github.com/brianvoe/gofakeit/v6"

        Usage

        • 快速開始

          ??import?"github.com/brianvoe/gofakeit/v6"
          ??gofakeit.Name()?????????????//?Markus?Moen
          ??gofakeit.Email()????????????//[email protected]
          ??gofakeit.Phone()????????????//?(570)245-7485
          ??gofakeit.BS()???????????????//?front-end
          ??gofakeit.BeerName()?????????//?Duvel
          ??gofakeit.Color()????????????//?MediumOrchid
          ??gofakeit.Company()??????????//?Moen,?Pagac?and?Wuckert
          ??gofakeit.CreditCardNumber()?//?4287271570245748
          ??gofakeit.HackerPhrase()?????//?Connecting?the?array?won't?do?anything,?we?need?to?generate?the?haptic?COM?driver!
          ??gofakeit.JobTitle()?????????//?Director
          ??gofakeit.CurrencyShort()????//?USD
        • 切換Random源Gofakeit有多個rand源,默認(rèn)是math.Rand,并且使用互斥鎖實現(xiàn)并發(fā)安全。

          ??//?Uses?crypto/rand(cryptographically?secure)?with?mutext?locking
          ??faker?:=?gofakeit.NewCrypto()
          ??
          ??//?Pass?in?your?own?random?source
          ??faker?:=?gofakeit.NewCustom()

          如果你需要更高的性能,可以手動解除互斥鎖,注意這不是并發(fā)安全

          ??//?Uses?math/rand(Pseudo)?with?NO?mutext?locking
          ??//?More?performant?but?not?goroutine?safe.
          ??faker?:=?gofakeit.NewUnlocked(0)
        • 全局設(shè)置rand 如果你需要全局替換rand源,只需要簡單設(shè)置即可:

          ??faker?:=?gofakeit.NewCrypto()
          ??gofakeit.SetGlobalFaker(faker)
        • Struct 生成Gofakeit可以為struct生成隨機(jī)數(shù)據(jù),并且可以覆蓋所有基本類型,還可以使用tag定制數(shù)據(jù)

          ??import?"github.com/brianvoe/gofakeit/v6"

          ??//?Create?structs?with?random?injected?data
          ??type?Foo?struct?{
          ??????Str??????string
          ??????Int??????int
          ??????Pointer??*int
          ??????Name?????string?????????`fake:"{firstname}"`?????????//?Any?available?function?all?lowercase
          ??????Sentence?string?????????`fake:"{sentence:3}"`????????//?Can?call?with?parameters
          ??????RandStr??string?????????`fake:"{randomstring:[hello,world]}"`
          ??????Number???string?????????`fake:"{number:1,10}"`???????//?Comma?separated?for?multiple?values
          ??????Regex????string?????????`fake:"{regex:[abcdef]{5}}"`?//?Generate?string?from?regex
          ??????Map??????map[string]int?`fakesize:"2"`
          ??????Array????[]string???????`fakesize:"2"`
          ??????Bar???Bar
          ??????Skip?????*string????????`fake:"skip"`????????????????//?Set?to?"skip"?to?not?generate?data?for
          ??????Created??time.Time?????????????//?Can?take?in?a?fake?tag?as?well?as?a?format?tag
          ??????CreatedFormat??time.Time?`fake:"{year}-{month}-{day}"?format:"2006-01-02"`
          ??}

          ??type?Bar?struct?{
          ??????Name????string
          ??????Number??int
          ??????Float???float32
          ??}

          ??//?Pass?your?struct?as?a?pointer
          ??var?f?Foo
          ??gofakeit.Struct(&f)

          ??fmt.Println(f.Str)????????//?hrukpttuezptneuvunh
          ??fmt.Println(f.Int)????????//?-7825289004089916589
          ??fmt.Println(*f.Pointer)???//?-343806609094473732
          ??fmt.Println(f.Name)???????//?fred
          ??fmt.Println(f.Sentence)???//?Record?river?mind.
          ??fmt.Println(f.RandStr)????//?world
          ??fmt.Println(f.Number)?????//?4
          ??fmt.Println(f.Regex)??????//?cbdfc
          ??fmt.Println(f.Map)???????//?map[PxLIo:52?lxwnqhqc:846]
          ??fmt.Println(f.Array)??????//?cbdfc
          ??fmt.Printf("%+v",?f.Bar)?????//?{Name:QFpZ?Number:-2882647639396178786?Float:1.7636692e+37}
          ??fmt.Println(f.Skip)???????//?
          ??fmt.Println(f.Created.String())?//?1908-12-07?04:14:25.685339029?+0000?UTC

        • 自定義函數(shù) 你可以實現(xiàn)自己的生成函數(shù),如果想要在http server和command line中使用,需要通過AddFuncLookup來實現(xiàn)自定義功能

          ??//?Simple
          ??gofakeit.AddFuncLookup("friendname",?Info{
          ??????Category:????"custom",
          ??????Description:?"Random?friend?name",
          ??????Example:?????"bill",
          ??????Output:??????"string",
          ??????Generate:?func(r?*rand.Rand,?m?*MapParams,?info?*Info)?(interface{},?error)?{
          ??????????return?RandomString([]string{"bill",?"bob",?"sally"}),?nil
          ??????},
          ??})

          ??//?With?Params
          ??gofakeit.AddFuncLookup("jumbleword",?Info{
          ??????Category:????"jumbleword",
          ??????Description:?"Take?a?word?and?jumple?it?up",
          ??????Example:?????"loredlowlh",
          ??????Output:??????"string",
          ??????Params:?[]Param{
          ??????????{Field:?"word",?Type:?"int",?Description:?"Word?you?want?to?jumble"},
          ??????},
          ??????Generate:?func(r?*rand.Rand,?m?*MapParams,?info?*Info)?(interface{},?error)?{
          ??????????word,?err?:=?info.GetString(m,?"word")
          ??????????if?err?!=?nil?{
          ??????????????return?nil,?err
          ??????????}

          ??????????split?:=?strings.Split(word,?"")
          ??????????ShuffleStrings(split)
          ??????????return?strings.Join(split,?""),?nil
          ??????},
          ??})

          ??type?Foo?struct?{
          ??????FriendName?string?`fake:"{friendname}"`
          ??????JumbleWord?string?`fake:"{jumbleword:helloworld}"`
          ??}

          ??var?f?Foo
          ??gofakeit.Struct(&f)
          ??fmt.Printf("%s",?f.FriendName)?//?bill
          ??fmt.Printf("%s",?f.JumbleWord)?//?loredlowlh

        內(nèi)置函數(shù)列表

        File

        JSON(jo?*JSONOptions)?([]byte,?error)
        XML(xo?*XMLOptions)?([]byte,?error)
        FileExtension()?string
        FileMimeType()?string

        Person

        Person()?*PersonInfo
        Name()?string
        NamePrefix()?string
        NameSuffix()?string
        FirstName()?string
        LastName()?string
        Gender()?string
        SSN()?string
        Contact()?*ContactInfo
        Email()?string
        Phone()?string
        PhoneFormatted()?string
        Teams(peopleArray?[]string,?teamsArray?[]string)?map[string][]string

        Generate

        Struct(v?interface{})
        Slice(v?interface{})
        Map()?map[string]interface{}
        Generate(value?string)?string
        Regex(value?string)?string

        Auth

        Username()?string
        Password(lower?bool,?upper?bool,?numeric?bool,?special?bool,?space?bool,?num?int)?string

        Address

        Address()?*AddressInfo
        City()?string
        Country()?string
        CountryAbr()?string
        State()?string
        StateAbr()?string
        Street()?string
        StreetName()?string
        StreetNumber()?string
        StreetPrefix()?string
        StreetSuffix()?string
        Zip()?string
        Latitude()?float64
        LatitudeInRange(min,?max?float64)?(float64,?error)
        Longitude()?float64
        LongitudeInRange(min,?max?float64)?(float64,?error)

        Game

        Gamertag()?string

        Beer

        BeerAlcohol()?string
        BeerBlg()?string
        BeerHop()?string
        BeerIbu()?string
        BeerMalt()?string
        BeerName()?string
        BeerStyle()?string
        BeerYeast()?string

        Car

        Car()?*CarInfo
        CarMaker()?string
        CarModel()?string
        CarType()?string
        CarFuelType()?string
        CarTransmissionType()?string

        Words

        Noun()?string
        Verb()?string
        Adverb()?string
        Preposition()?string
        Adjective()?string
        Word()?string
        Sentence(wordCount?int)?string
        Paragraph(paragraphCount?int,?sentenceCount?int,?wordCount?int,?separator?string)?string
        LoremIpsumWord()?string
        LoremIpsumSentence(wordCount?int)?string
        LoremIpsumParagraph(paragraphCount?int,?sentenceCount?int,?wordCount?int,?separator?string)?string
        Question()?string
        Quote()?string
        Phrase()?string

        Foods

        Fruit()?string
        Vegetable()?string
        Breakfast()?string
        Lunch()?string
        Dinner()?string
        Snack()?string
        Dessert()?string

        Misc

        Bool()?bool
        UUID()?string
        FlipACoin()?string
        ShuffleAnySlice(v?interface{})

        Colors

        Color()?string
        HexColor()?string
        RGBColor()?[]int
        SafeColor()?string

        Internet

        URL()?string
        DomainName()?string
        DomainSuffix()?string
        IPv4Address()?string
        IPv6Address()?string
        MacAddress()?string
        HTTPStatusCode()?string
        HTTPStatusCodeSimple()?int
        LogLevel(logType?string)?string
        HTTPMethod()?string
        HTTPVersion()?string
        UserAgent()?string
        ChromeUserAgent()?string
        FirefoxUserAgent()?string
        OperaUserAgent()?string
        SafariUserAgent()?string

        Date/Time

        Date()?time.Time
        DateRange(start,?end?time.Time)?time.Time
        NanoSecond()?int
        Second()?int
        Minute()?int
        Hour()?int
        Month()?int
        MonthString()?string
        Day()?int
        WeekDay()?string
        Year()?int
        TimeZone()?string
        TimeZoneAbv()?string
        TimeZoneFull()?string
        TimeZoneOffset()?float32
        TimeZoneRegion()?string

        Payment

        Price(min,?max?float64)?float64
        CreditCard()?*CreditCardInfo
        CreditCardCvv()?string
        CreditCardExp()?string
        CreditCardNumber(*CreditCardOptions)?string
        CreditCardType()?string
        Currency()?*CurrencyInfo
        CurrencyLong()?string
        CurrencyShort()?string
        AchRouting()?string
        AchAccount()?string
        BitcoinAddress()?string
        BitcoinPrivateKey()?string

        Company

        BS()?string
        BuzzWord()?string
        Company()?string
        CompanySuffix()?string
        Job()?*JobInfo
        JobDescriptor()?string
        JobLevel()?string
        JobTitle()?string

        Hacker

        HackerAbbreviation()?string
        HackerAdjective()?string
        Hackeringverb()?string
        HackerNoun()?string
        HackerPhrase()?string
        HackerVerb()?string

        Hipster

        HipsterWord()?string
        HipsterSentence(wordCount?int)?string
        HipsterParagraph(paragraphCount?int,?sentenceCount?int,?wordCount?int,?separator?string)?string

        App

        AppName()?string
        AppVersion()?string
        AppAuthor()?string

        Animal

        PetName()?string
        Animal()?string
        AnimalType()?string
        FarmAnimal()?string
        Cat()?string
        Dog()?string

        Emoji

        Emoji()?string
        EmojiDescription()?string
        EmojiCategory()?string
        EmojiAlias()?string
        EmojiTag()?string

        Language

        Language()?string
        LanguageAbbreviation()?string
        ProgrammingLanguage()?string
        ProgrammingLanguageBest()?string

        Number

        Number(min?int,?max?int)?int
        Int8()?int8
        Int16()?int16
        Int32()?int32
        Int64()?int64
        Uint8()?uint8
        Uint16()?uint16
        Uint32()?uint32
        Uint64()?uint64
        Float32()?float32
        Float32Range(min,?max?float32)?float32
        Float64()?float64
        Float64Range(min,?max?float64)?float64
        ShuffleInts(a?[]int)
        RandomInt(i?[]int)?int
        HexUint8()?string
        HexUint16()?string
        HexUint32()?string
        HexUint64()?string
        HexUint128()?string
        HexUint256()?string

        String

        Digit()?string
        DigitN(n?uint)?string
        Letter()?string
        LetterN(n?uint)?string
        Lexify(str?string)?string
        Numerify(str?string)?string
        ShuffleStrings(a?[]string)
        RandomString(a?[]string)?string


        《酷Go推薦》招募:


        各位Gopher同學(xué),最近我們社區(qū)打算推出一個類似GoCN每日新聞的新欄目《酷Go推薦》,主要是每周推薦一個庫或者好的項目,然后寫一點這個庫使用方法或者優(yōu)點之類的,這樣可以真正的幫助到大家能夠?qū)W習(xí)到

        新的庫,并且知道怎么用。


        大概規(guī)則和每日新聞類似,如果報名人多的話每個人一個月輪到一次,歡迎大家報名!戳「閱讀原文」,即可報名


        掃碼也可以加入 GoCN 的大家族喲~



        瀏覽 111
        點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            色婷婷五月综合 | 成人午夜精品无码区久久app | 日穴网站 | 奇米影视AV | 就操网| 日韩最新高清无码 | 99热6在线观看 | 最新无码在线 | 国产无遮挡呻吟娇喘视频 | 黄色免费网站在线观看 |