Go では、可変長引数を持つ関数は 0 個以上の引数を受け入れることができます。引数を指定せずにこのような関数を呼び出すことは有効ですが、常に望ましいとは限りません。
一連の入力から最小値を計算する min() 関数の例を考えてみましょう。この関数が正しく機能するには、少なくとも 1 つのパラメーターがこの関数に提供されることが重要です。
引数なしで可変個引数関数を呼び出すことは、言語仕様により、可変個引数関数を使用してコンパイル時エラーを直接引き起こすことはできません。
ただし、回避策は、非可変長パラメータと可変長パラメータの両方を含める関数。これにより、呼び出し元は少なくとも 1 つの引数を指定する必要があります:
func min(first int, rest ...int) int { // Implementation to find the minimum value }
このシグネチャを使用すると、引数なしで min() 関数を呼び出すとコンパイル時エラーが発生します:
min() // Error: not enough arguments in call to min
関数のシグネチャを変更できない場合、唯一の代替手段は、実行時に引数の存在を確認することです。引数の数が不十分な場合は、パニックになるか、アプリケーションを終了することができます。ただし、このアプローチではコンパイル時エラーを引き起こすことはできません。
以上がGo のカスタム ライブラリは、関数の引数が不十分な場合にコンパイル時エラーを強制できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。