Go の例: 可変長引数関数

可変長引数関数は末尾に任意の数の引数を実装できます。たとえば、fmt.Printlnは一般的な可変長引数関数です。

package main
import "fmt"

以下は引数として任意の数のintを受け取る関数です。

func sum(nums ...int) {
    fmt.Print(nums, " ")
    total := 0

関数内では、numsの型は[]intと同等です。len(nums)を呼び出して、rangeを使用して反復処理できます。

    for _, num := range nums {
        total += num
    }
    fmt.Println(total)
}
func main() {

可変長引数関数は通常の方法で個々の引数を使用して呼び出すことができます。

    sum(1, 2)
    sum(1, 2, 3)

スライス内に複数の引数がある場合は、次のようにfunc(slice...)を使用して可変長引数関数に適用します。

    nums := []int{1, 2, 3, 4}
    sum(nums...)
}
$ go run variadic-functions.go 
[1 2] 3
[1 2 3] 6
[1 2 3 4] 10

Go 関数のもう 1 つの重要な側面は、クロージャを形成するための機能であり、ここではその点を説明します。

次の例: クロージャ