golang で JS 的な addEventListener/dispatchEvent 的なことをしたいときどうするか? emission https://github.com/chuckpreslar/emission JS にあるようなのと全く同じ様に「イベント名」でイベントの種類を識別して任意の「イベントオブジェクト」をやりとりする。 On/Off/Once とか jQuery にあるような便利メソッドがついてる。 リフレクションで型変換は隠蔽されているが、もしリスナーとエミッターとで型が食い違っていると、実行時エラーになる。 package main import ( "github.com/chuckpreslar/emission" "log" ) type ClickEvent struct { button string } type KeyEvent struct {