カスタム ライブラリは Golang でコンパイル時エラーを引き起こす可能性がありますか?
Golang では、関数を呼び出すときにコンパイル時エラーを引き起こすことはできません。引数のない可変個引数パラメーターを持つ関数。関数呼び出し min() は、言語仕様によって有効であるとみなされます。
ただし、少なくとも 1 つの引数を強制的に渡す回避策が存在します。関数シグネチャを変更して非可変長パラメータと可変長パラメータを含めると、コンパイル時エラーが生成される可能性があります。
変更された関数シグネチャ:
func min(first int, rest ...int) int { // ... Same logic as before }
この署名には少なくとも 1 つの引数 (最初) が必要で、複数の追加引数が許可されます。 (rest).
使用法:
// This is now a compile-time error min() // Valid calls min(1) min(1, 2) min(1, 2, -3)
注:
引数が 1 つだけの場合、上記の変更により効率が向上します。スライスは作成されないため、渡されます。ただし、次のような手法を使用してスライスを渡すこともできます。
s := []int{1, 2, -3} min(s[0], s[1:]...) // Pass first element and sliced slice as variadic parameter
関数のシグネチャを変更できない場合、引数の欠落を処理するには、ランタイム パニックまたはアプリの終了が唯一のオプションです。
以上がカスタム Go ライブラリは、可変引数関数の引数が欠落しているためにコンパイル時エラーを生成できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。