「Go言語のFunctional Option Pattern - Qiita」を参考にして今回も自分用の覚え書きとして書いておく。 Go 言語には C++ や Java 等にある class 宣言がない。 つまりインスタンス(instance)生成時の構築子(constructor)もない。 ではどうやってインスタンスを生成するのか。 たとえば以下のような型を考える。 package ui import ( "io" ) // UI is Command line user interface type UI struct { reader io.Reader writer io.Writer errorWriter io.Writer }