Goの変数名を日本語で書くと言う一つの方法

アドベントカレンダーにはかけない程度のメモです。

ありそうで中々ない日本語による変数名ですが、個人的には日本人のみのチームなら有りだと思っています。
利点は圧倒的な可読性。
さらに英語圏の人へは難読化になると言う特典付き・・・如何でしょうか。

package main

import "fmt"

type 魔法少女 struct {
  まどか string
  ほむら string
}

func にゅー魔法少女()  *魔法少女{
  return &魔法少女{
    まどか:   "魔法少女まどか",
    ほむら:   "魔法少女ほむら",
  }
}

type 話数 struct {
   int
}

func( *話数)マミったかな(){
  if . >= 3 {
     fmt.Println("マミった")
  } else {
    fmt.Println("マミってない")
  }
}

type 契約しようよ string

func main() {
  まほうしょうじょ := にゅー魔法少女()
  fmt.Println(まほうしょうじょ.まどか) //=> 魔法少女まどか
  fmt.Println(まほうしょうじょ.ほむら) //=> 魔法少女ほむら

  夢の中で逢ったような := new(話数)
  夢の中で逢ったような. = 1

  もう何も怖くない := new(話数)
  もう何も怖くない. = 3

  夢の中で逢ったような.マミったかな() //=> マミってない
  もう何も怖くない.マミったかな()     //=> マミった

  まどかちゃんへ := make(chan 契約しようよ, 5)

  go func(){
    まどかちゃんへ <- "僕と契約して魔法少女になってよ!"
    まどかちゃんへ <- "僕と契約して魔法少女になってよ!"
    まどかちゃんへ <- "僕と契約して魔法少女になってよ!"
    まどかちゃんへ <- "僕と契約して魔法少女になってよ!"
    まどかちゃんへ <- "その必要はないわ。"
    close(まどかちゃんへ)
  }()

  for やあまどか := range まどかちゃんへ{
    fmt.Println(やあまどか)
    /* =>僕と契約して魔法少女になってよ!
     僕と契約して魔法少女になってよ!
     僕と契約して魔法少女になってよ!
     僕と契約して魔法少女になってよ!
     その必要はないわ。*/
  }
}

https://play.golang.org/p/dUFkiHITEQ

1509663806
twitter @A_Resas