Go by Example:變數長度函式

變數長度函式得以使用任何數量的尾部參數進行呼叫。例如,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 函式的另一個主要面向是形成封閉,我們將在接著的內容中查看。

下一個範例:封閉