golang中函数的参数

1. 函数当做函数的参数

package main

import "fmt"

type HandleFunc func(int) (int, bool)

func add10(num1 int) (int, bool) {
	return num1 + 100, true
}

func proxy(data int, exec HandleFunc) int {
	data, flag := exec(data)
	if flag {
		return data
	} else {
		return 9999
	}
}

func main() {
	ret := proxy(10, add10)
	fmt.Println(ret)
}

 

2. 可变参数

package main

import "fmt"

func do(nums ...int) (sum int) {
	// 可变参数
	for _, v := range nums {
		sum += v
	}
	return
}

func main() {
	// 可变参数可以传递多个值
	ret := do(1, 2, 3)
	fmt.Println(ret)

	// 可变参数也可以传递一个切片然后三个...
	// 也就是将切片拆成多个参数
	ret2 := do([]int{11, 22, 33}...)
	fmt.Println(ret2)
}

 - 可变参数注意事项:变长参数只能放在最后且只能有一个

 

posted @ 2021-10-14 22:24  专职  阅读(133)  评论(0编辑  收藏  举报