function_は、1つ以上の値を1つの引数として受け入れる関数です。可変引数関数は一般的なケースではありませんが、コードをよりクリーンで読みやすくするために使用できます。可変長関数は、見かけよりも一般的です。`)は可変機能と見なされます。省略記号は、指定されたパラメーターが0、1、またはそれ以上の値であることを意味します。+`は可変引数であると述べています。+`関数を使用して、0、1、または複数の値を渡すプログラムを作成しましょう。`を呼び出すとき、引数を渡しません。`の単一の引数のみを渡します。print.go次の出力が表示されます。three出力の最初の行は空白です。`が最初に呼び出されたときに引数を渡さなかったためです。」の値が出力されました。可変個の関数を呼び出す方法がわかったので、独自の可変個の関数を定義する方法を見てみましょう。+)を使用することにより、可変引数関数を定義できます。関数に名前が送信されたときに挨拶するプログラムを作成してみましょう。sayHello`関数を作成しました。これは、関数が0、1、または多くの引数を受け入れることができることをGoに伝えます。`パラメーターを受け取ります。`パラメーターは次のように扱うことができます。[`でループを作成できます。`]演算子を使用して、文字列のスライスを反復処理します。プログラムを実行すると、次の出力が得られます。`を初めて呼び出したときに何も出力されないことに注意してください。+`が呼び出されることはありません。プログラムを変更して、値が送信されなかったことを検出しましょう。Jamie可変引数を使用すると、コードが読みやすくなります。指定された区切り文字で単語を結合する関数を作成しましょう。最初に可変機能を持たないこのプログラムを作成して、その読み方を示します。次に、結合する値のスライスを渡します。+`関数を呼び出すときにすべての単語をスライスにラップする必要がありました。これにより、コードが読みにくくなる可能性があります。ここで、同じ関数を記述しましょう。可変個の関数を使用します。line}プログラムを実行すると、前のプログラムと同じ出力が得られることがわかります。+`関数の両方のバージョンはプログラム的にまったく同じことを行いますが、関数の可変長バージョンは呼び出されたときに読みやすくなります。関数には1つの変数パラメータのみを含めることができ、それは関数で定義された最後のパラメータでなければなりません。最後のパラメーター以外の任意の順序で変数関数のパラメーターを定義すると、コンパイルエラーが発生します。as`パラメーターを設定します。これにより、次のコンパイルエラーが発生します。values可変引数関数を定義する場合、最後のパラメーターのみが可変引数になります。爆発的な議論これまでに、0、1、またはそれ以上の値を可変引数関数に渡すことができることを見てきました。値のスライスがあり、変数の関数に送信したい場合があります。+」関数を見て、何が起こるか見てみましょう。line}このプログラムを実行すると、コンパイルエラーが表示されます。+`に変換しますが、文字列のスライスを引数として渡すことはできません。これは、コンパイラが文字列の個別の引数を予期しているためです。+)を接尾辞としてスライスに_explode_して、可変個の関数に渡される個別の引数に変換します。+`スライスを分解しました。これにより、プログラムが期待どおりに実行できるようになります。OutputSammy,Jessica,Drew,Jamieゼロ、1つ、またはそれ以上の引数と爆発したスライスを渡すことができることに注意することが重要です。これまで見てきたすべてのバリエーションを渡すコードを次に示します。line}OutputSammy,Jessica,Drew,JamieSammy,Jessica,Drew,JamieSammy,JessicaSammyこれで、0、1、または多くの引数と、爆発するスライスを可変引数関数に渡す方法がわかりました。結論このチュートリアルでは、可変引数関数がコードをきれいにする方法を説明しました。それらを使用する必要はありませんが、便利な場合があります。関数に渡すために一時的なスライスを作成していることがわかった場合。入力パラメーターの数が不明な場合、または呼び出されたときに変化する場合。コードを読みやすくするため。[Goで関数を定義して呼び出す方法]を参照してください。