3.4. 第 4节:函数-匿名函数、递归函数

未匹配的标注
本文档最新版为 2023,旧版本可能放弃维护,推荐阅读最新版!

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)

}

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~