2015/05/27

Recent entries from same category

  1. Go 言語プログラミングエッセンスという本を書きました。
  2. errors.Join が入った。
  3. unsafe.StringData、unsafe.String、unsafe.SliceData が入った。
  4. Re: Go言語で画像ファイルか確認してみる
  5. net/url に JoinPath が入った。

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 の実装は漢字出力にしています。テストの際にお役立て下さい。

Posted at by