一、函数定义声明
func funcName ( a, b int , c string ) ( r , s int ) {
dosomething
return
}
二、golang函数支持特性
1.不定长度变参,即使用…
2.多返回值
3.命名返回值参数
4.匿名函数
5. 闭包
6.高阶函数,即函数也可以作为一种类型,参数传递给另外一个函数
三、golang函数目前不支持特性
1.默认值
2. 重载
3.嵌套定义,即函数中再定义一个函数
四、函数传参方式说明
1.在golang中函数的参数默认为 按值传递 ,即在函数内部修改传入参数的值是函数外部传入值的拷贝。
2.Go中 函数调用 只有值传递,但是类型引用有引用类型,他们是:slice、map、channel,这三种类型作为参数传递时,在函数中的修改会影响其外部传入的值。
3.如果想要使用引用传递,需要将传入的参数设置为指针类型。
4.如果传入的参数数据很大,建议使用指针类型,减少内存因拷贝参数而占用。
值传递、引用传递和指针传递的区别:
1.值传递是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改,将不会影响到实际参数。
2. 形参 为指向实参地址的指针,当对形参的指向操作时,就相当于对实参本身进行的操作。
3.所谓引用传递是指在调用函数时将实际参数的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。