Quantcast
Channel: Big Sky
Viewing all articles
Browse latest Browse all 121

適当な日本人の名前や住所をランダムに作れる gimei を golang に port した。

$
0
0
willnet/gimei - GitHub

gimei は、日本人の名前や、日本の住所をランダムに返すライブラリです。テストの時などに使います。似たようなライブラリにfakerがあります。fakerはとても優れたライブラリで、多言語対応もしていますが、ふりがな(フリガナ)は流石に対応していません。gimei ふりがな(及びフリガナ)に対応しています。

https://github.com/willnet/gimei

オリジナルは ruby gems です。

mattn/go-gimei - GitHub

golang port of gimei

https://github.com/mattn/go-gimei

作者の方に ok を貰ったのでデータも同梱しています。使い方もほぼ同じです。

package main

import (
    "fmt"

    "github.com/mattn/go-gimei"
)

func main() {
    name := gimei.NewName()
    fmt.Println(name)                  // 斎藤 陽菜
    fmt.Println(name.Kanji())          // 斎藤 陽菜
    fmt.Println(name.Hiragana())       // さいとう はるな
    fmt.Println(name.Katakana())       // サイトウ ハルナ
    fmt.Println(name.Last.Kanji())     // 斎藤
    fmt.Println(name.Last.Hiragana())  // さいとう
    fmt.Println(name.Last.Katakana())  // サイトウ
    fmt.Println(name.First.Kanji())    // 陽菜
    fmt.Println(name.First.Hiragana()) // はるな
    fmt.Println(name.First.Katakana()) // ハルナ
    fmt.Println(name.IsMale())         // false

    male := gimei.NewMale()
    fmt.Println(male)            // 小林 顕士
    fmt.Println(male.IsMale())   // true
    fmt.Println(male.IsFemale()) // false

    address := gimei.NewAddress()
    fmt.Println(address)                       // 岡山県大島郡大和村稲木町
    fmt.Println(address.Kanji())               // 岡山県大島郡大和村稲木町
    fmt.Println(address.Hiragana())            // おかやまけんおおしまぐんやまとそんいなぎちょう
    fmt.Println(address.Katakana())            // オカヤマケンオオシマグンヤマトソンイナギチョウ
    fmt.Println(address.Prefecture)            // 岡山県
    fmt.Println(address.Prefecture.Kanji())    // 岡山県
    fmt.Println(address.Prefecture.Hiragana()) // おかやまけん
    fmt.Println(address.Prefecture.Katakana()) // オカヤマケン
    fmt.Println(address.Town)                  // 大島郡大和村
    fmt.Println(address.Town.Kanji())          // 大島郡大和村
    fmt.Println(address.Town.Hiragana())       // おおしまぐんやまとそん
    fmt.Println(address.Town.Katakana())       // オオシマグンヤマトソン
    fmt.Println(address.City)                  // 稲木町
    fmt.Println(address.City.Kanji())          // 稲木町
    fmt.Println(address.City.Hiragana())       // いなぎちょう
    fmt.Println(address.City.Katakana())       // イナギチョウ

    prefecture := gimei.NewPrefecture()
    fmt.Println(prefecture) // 青森県
}

注意点としては漢字の名前に対して読みが複数ある場合もあります。例えば上記の「陽菜」だと「はな」と「はるな」の2つがあります。Stringer の実装は漢字出力にしています。テストの際にお役立て下さい。


Viewing all articles
Browse latest Browse all 121

Trending Articles