func 函数名 (参数列表) [(返回值列表)] {}
Golang函数特点
a. 不支持重载,一个包不能有两个名字一样的函数
b. 函数是一等公民,函数也是一种类型,一个函数可以赋值给变量
c. 匿名函数
d. 多返回值
函数的参数传递方式
值传递
引用传递
注意1:
无论是值传递,还是引用传递,传递给函数的都是变量的副本,
不过,值传递是值的拷贝。引用传递是地址的拷贝,一般来说,地址
拷贝更为高效。而值拷贝取决于拷贝的对象大小,对象越大,则性能
越低。
注意2:
map、slice、chan、指针、interface默认以引用的方式传递
![]()
/*
package main
import "fmt"
func modify(a int) {
a = 100
}
func main(){
a := 8
fmt.Println(a)
modify(a)
fmt.Println(a)
}
*/
// 修改上面的程序, 使其正确
package main
import "fmt"
func modify(a *int) {
*a = 100
}
func main(){
a := 8
fmt.Println(a)
modify(&a)
fmt.Println(a)
}
练习 13