第 8 节:函数-匿名函数、递归函数
8: 08匿名函数
package main
import "fmt"
type FuncType func(int, int)
func main0801() {
a := 10
b := 20
//在函数内部定义一个匿名函数
//f 函数类型变量 接收函数
var f FuncType
f = func(a int, b int) {
fmt.Println(a + b)
}
f(a, b)
//fmt.Println(f)
}
func main0802() {
//a := 10
//b := 20
// int类型
//v := func(a int, b int) int {
// return a + b
//}(a, b)
//如果定义匿名函数后在{}后面如果有()表示函数调用
f := func(a int, b int) int {
return a + b
}
v := f(10, 20)
fmt.Printf("%T\n", f)
fmt.Println(v)
}
func main0803() {
a := 10
b := 20
f := func() int {
return a + b
}
//v := f(a, b)
a = 100
b = 200
v := f()
fmt.Println(v)
}
9: 09递归函数
package main
import "fmt"
//递归函数 函数调用函数本身
//死递归
func demo4(n int) {
//在函数中遇到return 表示函数的结束
if n == 0 {
return
}
demo4(n - 1)
fmt.Println(n)
}
func main0901() {
demo4(10)
}
//计算一个数的阶乘
var s int = 1
func demo5(n int) {
if n == 1 {
return
}
s *= n//5*4*3*2
demo5(n - 1)
}
func main() {
a := 5
demo5(a)
fmt.Println(s)
}
本作品采用《CC 协议》,转载必须注明作者和本文链接