- 函数:
- 声明:
func 函数名字 (参数列表) (返回值列表){}
- 举例:
func add() {}
func add(a int , b int) int {}
func add(a int , b int) (int, int) {}
- 特点:
a. 不支持重载,一个包不能有两个名字一样的函数.
b. 函数也是一种类型,一个函数可以赋值给变量(这个变量是一个指针指向函数地址).
c. 匿名函数
d. 多返回值
e. type定义新的类型:type addFunc func(int, int) int => 表示函数也是一种类型
- 函数参数传递方式:
a. 值传递
b. 引用传递
c. 值传递、引用传递,传递给函数的都是变量的副本.值传递是值的拷贝,引用传递是地址(8个字节)的拷贝.
d. 一般来说,地址拷贝更为高效.值拷贝取决于拷贝的对象大小,对象越大,则性能越低.
e. map、slice、chan、指针、interface默认以引用的方式传递.
- 命名返回值的名字:
func calc(a, b int) (sum int, avg int) {
sum = a + b
avg = (a +b) / 2
return
}
- _标识符,用来忽略返回值.
a, _ = add()
_, a = add()
- 可变参数:
func add(arg…int) int {} // 0个或多个参数
func add(a int, arg…int) int {} // 1个或多个参数,a是固定参数(可以有多个固定参数)
a. arg是一个slice(切片).
b. 通过arg[index]依次访问所有参数.
c. 通过len(arg)来判断传递参数的个数.
标签:函数,int,传递,add,func,arg,go From: https://blog.51cto.com/u_16298172/8095786