在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
1.声明语法 func 函数名 (参数列表) (返回值) { pass } 1.func add() { pass } 2.func add(a int, b int) (int,int) { pass } 3.func add(a,b int,args...) int { pass } 4.匿名函数
5.函数可以作为变量赋值/作为参数传入 1)作为变量赋值 func add(a,b int) int { return a + b } func main() { c := add sum := c(10,20) fmt.Println(sum) // 30 } 2)作为参数传入 type add_func func(int , int) int //定义一种类型。add_func类型 参数两个int变量返回值为int func add(a,b int) int { return a + b } func operate(op add_func,a int, b int ) int { return op(a+b) } func main(){ c := add sum := operate(c,100,200) fmt.Println(sum) //300 } 2.参数传递方式 1)值传递 2)引用传递 //值所在内存的地址 注意: 无论是值传递还是引用传递,传递给函数的都是变量的副本(也就是深copy一份传递过去)。不过,值传递是值的拷贝,引用传递是地址的拷贝。 map、slice、chan、指针、interface默认为引用的方式传递 3.命名返回值的名字: package main import "fmt" func calc(a, b int) (sum int, sub int) { sum = a + b sub = a - b return } func main() { _, sum := calc(100, 200) fmt.Println("sum=", sum) } 4.defer用途 1)当函数返回时,执行defer语句。 2)多个defer语句,按先进后出执行(实际是将defer语句的参数和资源压栈,函数结束时根据出栈顺序执行) 3)defer语句的变量,在defer声明时就决定了 package main import "fmt" func main() { i := 0 defer fmt.Println(i) //0 i = 10 fmt.Println(i) //10 /* 10 0 */ }
|
请发表评论