本記事は、NewsPicks Advent Calendar 2022 の 12/19 公開分の記事になります。 はじめまして、11月からAlphaDriveにJoinし、Webアプリケーションエンジニアをしている畠山(keyamin)です。 今回は、Goで関数のオプション引数を実現するための方法を紹介しようと思います! お題 別言語での実装例 Goでの実装方法を考える 使われそうなパターン分のファクトリー関数を作る オプション構造体を用意する ビルダーを利用する Functional Optionパターン まとめ お題 コーヒーショップを題材に、コーヒーインスタンスを作成するプログラムを考えます。コーヒーファクトリー関数の呼び出し側は、サイズ、ミルクの有無、角砂糖の数を指定することができます。 ※こちらの題材はO'Reilly Japanより出版されている実用 Go言語を参考にしています
![Goで関数のオプション引数を実装するパターン集 - Uzabase for Engineers](https://cdn-ak-scissors.b.st-hatena.com/image/square/0cd256ee39316dca107450ba8f0ef74a2a30ffcb/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fkeyamin%2F20230726%2F20230726133717.png)