第 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 协议》,转载必须注明作者和本文链接
嗨,我是波波。曾经创业,有收获也有损失。我积累了丰富教学与编程经验,期待和你互动和进步! 公众号:上海PHP自学中心 付费知识星球:破解面试:程序员的求职导师
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
司机 @ 欣昊玉
文章
273
粉丝
339
喜欢
558
收藏
1106
排名:64
访问:12.2 万
私信
所有博文
社区赞助商