ちなみに今回のコードはそれほど実用性はありません。ここまで頑張って、シングルトンぽいことを実現する必要性は感じられないからです。サンプルコードはこちら。 https://www.github.com/Songmu/go-sandbox/ Goでシングルトンを実現する方法として以下の様なコードが良く見られます。 package singleton import "sync" type singleton struct{ } var ( instance *singleton once sync.Once ) func GetInstance() *singleton{ once.Do(func() { instance = &singleton{} }) return instance } このコードのグッドポイントとしては、 sync.Once を使っていること。以下のように素朴に nil
![GoでSingletonぽいことを実現する、とある方法 | おそらくはそれさえも平凡な日々](https://cdn-ak-scissors.b.st-hatena.com/image/square/3913343aaa046c639e745e6fa3948a100441cb8f/height=288;version=1;width=512/https%3A%2F%2Fjunkyard.song.mu%2Fimages%2Fghzo%2F17-1029-2135-685996c863a89d20.png)