go的函式
命名的函式返回值
func add(a, b int) (c int) { c = a + b return } func calc(a, b int) (sum int, avg int) { sum = a + b avg = (a +b)/2 return }
可變引數:
func add(arg…int) int {//0個或多個引數 } func add(a int, arg…int) int {//1個或多個引數 } func add(a int, b int, arg…int) int {//2個或多個引數 }
注意:其中arg是一個slice,我們可以通過arg[index]依次訪問所有引數通過len(arg)來判斷傳遞引數的個數
函式可以作為type:
package main import "fmt" type op_func func(int, int) int func add(a, b int) int { return a + b } func operator(op op_func, a, b int) int { return op(a, b) } func main() { fmt.Println(operator(add, 1, 2)) }