TL; DR 状況によって下記を使い分けるのが良さそう.とりあえずFunctional Option Patternでも良いかも. 複数の関数を用意する オプショナル引数が少ない場合に有効.シンプルだが拡張性が低い. 引数用の構造体を用意する 構造体を使うのでユーザービリティが良く実装も容易.ただし,引数の未指定とゼロ値を分離するためには値のポインタを使う必要がある. Functional Option Patternを使う デザインパターンとして提案されているだけあって,クリーンで拡張性が高い.敢えてデメリットを挙げるとすると,このパターンを知らないユーザーからするとやや直感的でない.実装側は引数毎に関数を定義する必要があり記述量が増える. はじめに Goには関数のオプショナルパラメータ(デフォルトパラメータ)がありません.しかし,「必要最低限の挙動をする分にはユーザーが意識する必要のな