English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
異なる数のパラメータで呼び出される関数が可変パラメータ関数と呼ばれます。つまり、ユーザーが可変関数に0個以上のパラメータを渡すことを許可しています。fmt.Printfこれは可変パラメータ関数の例で、開始時に固定のパラメータが必要で、その後は任意の数のパラメータを受け入れることができます。
重要事項:
可変パラメータ関数の宣言では、最後のパラメータの型の前に省略符が付いています。……
)。これは、関数がこの種の任意数の引数を呼び出すことができることを示しています
文法:1function function_name(para2, para // ...type)type{ }
コード...関数function …typeの
可変引数関数に既存のスライスを渡すこともできます。これは、以下のように関数にスライスの一部を渡すことで実現されます。例2表示されています。
可変引数関数に何も引数を渡さない場合、関数内部ではデフォルトでnilです。
可変引数関数は通常、文字列のフォーマット化に使用されます。
可変引数関数に複数のスライスを渡すこともできます。
可変引数を返り値として使用することはできませんが、スライスとして返すことができます。
ゼロの引数と複数の引数のデモンストレーション例:
package main import ( "fmt" "strings" ) //可変引数関数で文字列を結合 func joinstr(element ...string) string { return strings.Join(element, "-") } func main() { //ゼロの引数 fmt.Println(joinstr()) //複数の引数 fmt.Println(joinstr("GEEK", "GFG")) fmt.Println(joinstr("Geeks", "for", "Geeks")) fmt.Println(joinstr("G", "E", "E", "k", "S")) }
出力:
GEEK-GFG Geeks-for-Geeks G-E-E-k-S
例2,可変引数関数で文字列を結合、可変関数にスライスを渡す:
package main import( "fmt" "strings" ) //可変引数関数で文字列を結合 func joinstr(element...string)string{ return strings.Join(element, "-") } func main() { //可変関数にスライスを渡す element:= []string{"geeks", "FOR", "geeks"} fmt.Println(joinstr(element...)) }
出力:
geeks-FOR-geeks
可変引数関数を使用する場合:
関数にスライスを渡す場合に、可変引数関数を使用します。
引数の数がわからない場合に、可変引数関数を使用します。
プログラムで可変引数関数を使用すると、プログラムの可読性が向上します。