Go Sueyoshi a.k.a sue445
2015/12/06 Go Conference 2015 Winter
(兼 プリキュアAdventCalendar 7日目)


日曜朝8:30からテレビ朝日系で放映しているアニメ
「Go!プリンセスプリキュア」のgolang実装です

go get github.com/sue445/goprecure
import github.com/sue445/goprecure
// キュアフローラ
flora := goprecure.NewCureFlora()
// キュアマーメイド
mermaid := goprecure.NewCureMermaid()
// キュアトゥインクル
twinkle := goprecure.NewCureTwinkle()
// キュアスカーレット
scarlett := goprecure.NewCureScarlett()
flora := goprecure.NewCureFlora()
flora.Name()
// 春野はるか
flora.Name()
// 春野はるか
flora.Transform()
flora.Name()
// キュアフローラ


// キュアフローラ
g.DressupKeys = []DressupKey{Flora, Rose, Lily, Sakura, Royal}
// キュアマーメイド
g.DressupKeys = []DressupKey{Mermaid, Ice, Bobble, Sango, Royal}
// キュアトゥインクル
g.DressupKeys = []DressupKey{Twinkle, Luna, ShootingStar, Ginga, Royal}
// キュアスカーレット
g.DressupKeys = []DressupKey{Scarlett, Hanabi, Phoenix, Sun, Royal}


Transform の後に Exchange すると Exchange の標準出力だけ出してほしいのに直前の Transform のも一緒に出るので邪魔
golangのREPLがまだGoPrecureに追いついていない感があるw
method_missing でymlに飛ばすとかtransform!(変身) や attack!(必殺技) など破壊的メソッドには ! をつけるRubyの慣習に則ったDresupKey という型を const で定義することにより Exchange に未知のドレスアップキーが引数がわたらないようにした(コンパイルエラーになる)新しい言語を勉強する時は自分の好きなものを実装すると良い。