ホームページ >バックエンド開発 >Golang >カスタム Go ライブラリは、可変引数関数の引数が欠落しているためにコンパイル時エラーを生成できますか?

カスタム Go ライブラリは、可変引数関数の引数が欠落しているためにコンパイル時エラーを生成できますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-05 13:03:10826ブラウズ

Can Custom Go Libraries Generate Compile-Time Errors for Missing Variadic Function Arguments?

カスタム ライブラリは 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。