Runner in the High

技術のことをかくこころみ

Golang

GoのAccept Interfaceはなにが嬉しいのか

たまーに考えることがあったが、せっかくなのでアウトプットしておく。 まず前提としてGo以外のインターフェイスを持つ言語、例えばJavaではインターフェイスを満たしていることを明示するためにimplementsキーワードなどで実装を明示してやる必要がある。つ…

GolangでUnmarshallerインターフェースを実装した構造体をフィールドの型として使うと便利

例えばこんな構造体が定義されているとして type User struct { Name string `json:"name"` Status int `json:"status"` } この構造体をJSONからUnmarshalしてマッピングする際に、以下のような要件があるとする statusの取りうる範囲は1,2だけ、かつそれぞ…

Golangではinterfaceはどのパッケージに属するのか

Golangを使い始めてinterfaceでDIPっぽいことをしようとするとたしかに湧きがちな疑問のひとつ。結論から言うと、interfaceはそれを使う側のパッケージに所属させるのがセオリーらしい。なるほど。 Go interfaces generally belong in the package that uses…