ホームページ  >  記事  >  バックエンド開発  >  Go での可変個引数関数の仕組み: "..." 構文の開梱?

Go での可変個引数関数の仕組み: "..." 構文の開梱?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-04 21:59:02252ブラウズ

How do Variadic Functions Work in Go: Unpacking the

Go の可変引数関数: "...Type" を理解する

Go 言語では、可変長の引数リストを使用して関数を定義できます、可変個引数関数として知られています。可変長関数の構文は、最後のパラメーターの型に省略記号 (...) を追加します。

構文:

func functionName(param1, param2, ..., paramN ...Type)

ここで:

  • paramN は、可変個引数パラメーターの名前です。
  • Type は、可変個引数パラメーターの型です。
  • 省略記号は、パラメーターが 0 個以上の引数を受け入れることができることを示します。

例:

builtin.go のコードは、コンパイルされたコードではなくドキュメントとして機能します。次の行:

func append(slice []Type, elems ...Type) []Type

は、append と呼ばれる可変個引数関数を示しています。この関数は 2 つ以上のパラメータを受け入れることができます。最初のパラメータは []Type 型のスライスで、2 番目は Type の任意の数の要素を受け入れることができる可変個引数パラメータです。

Usage:

コードでは、他の関数と同じ構文で append 関数を呼び出すことができます。

s3 := append(s1, s2...)

この例では、append 関数は 2 つのスライス s1 と s2 を連結します。これにより、新しいスライス s3 が作成されます。 s2 で使用される省略記号は、s2 のすべての要素が s3 にコピーされる必要があることを示します。

補足:

  • 可変長引数関数は、可変引数パラメーターを 1 つだけ持つことができます。これは関数シグネチャの最後のパラメータである必要があります。
  • 可変個引数パラメータの型は、構造体やインターフェイスを含む任意の Go 型にすることができます。
  • 可変個引数関数は、多くの場合、柔軟性を提供するために使用されます。関数は任意の数の引数を受け入れることができます。

以上がGo での可変個引数関数の仕組み: "..." 構文の開梱?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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