Go学习笔记1.6 函数剖析

函数定义

Go语言支持:函数、匿名函数和闭包 定义函数使用func关键字

//函数名:由字母、数字、下划线组成。但函数名的第一个字母不能是数字。在同一个包内,函数名也不能重名
func 函数名(参数)(返回值) {
    函数体
}

函数传参

Go语言中调用函数,传递过来的变量就是函数的实参,函数可以通过两种方式来传递参数:值传递 和 引用传递

值传递: 调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数
引用传递: 调用函数时将实际参数的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数

  1. 参数传递
func swap(x, y *int){
    var temp int    
    temp = *x /* 保存 x 的值 */
    *x = *y   /* 将 y 值赋给 x */
    *y = temp /* 将 temp 值赋给 y*/
}
  1. 不定参数传递
    可变参数本质上就是slice,只能有一个,且必须是最后一个。
//其中args是一个slice,我们可以通过arg[index]依次访问所有参数,通过len(arg)来判断传递参数的个数
func myfunc(args ...int){
    //0个或多个参数
}

//任意类型的不定参数
func myfunc(args ...interface{}){

}

函数返回值

匿名函数

闭包函数

递归函数

本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可。