七叶笔记 » golang编程 » golang基础之函数function

golang基础之函数function

一、函数定义声明

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.所谓引用传递是指在调用函数时将实际参数的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。

相关文章