美文网首页
golang入门到放弃:2.匿名函数、闭包、递归函数

golang入门到放弃:2.匿名函数、闭包、递归函数

作者: 不留余白 | 来源:发表于2020-07-06 14:33 被阅读0次

匿名函数

Go语言支持匿名函数,即函数可以像普通变量一样被传递或使用。

  • eg1
func main() {
    a:=10
    b:=5
    //将闭包函数类型赋值给f
    f:=func (c int,d int)int {
        return c+d
    }
    fmt.Println(f(a,b))//15
    fmt.Printf("%T",f,)//func(int, int) int
    fmt.Printf("%T",f(a,b))//int
}
  • eg2
func main() {

   //函数调用 将test2的返回值给f
   f1:=test12()
   //fmt.Printf("%T",f1)
   for i:=5;i<=10 ;i++  {
      fmt.Println(f1())
   }
}

//可以通过匿名函数和闭包 实现函数在栈区的本地化
func test12()  func()int{
   a:=10
   fmt.Printf("init=%d\n",a)
   return func() int{
       a++
      return a
   }
}

输出

init=10
11
12
13
14
15
16
  • eg3 效果等同eg2
func main() {
   a := 10
   for i := 5; i <= 10; i++ {
      func() int {
         a++
         fmt.Println(a)
         return  a
      }()
   }
}

输出

11
12
13
14
15
16

递归

计算n的阶乘

func main(){
   jiecheng(4) //4*3*2*1=24
 fmt.Println(sum)
}

var sum int =1
func jiecheng(n int)int{
   if n==1{
      return sum
   }
   sum*=n
   return jiecheng(n-1)
}

相关文章

  • golang入门到放弃:2.匿名函数、闭包、递归函数

    匿名函数 Go语言支持匿名函数,即函数可以像普通变量一样被传递或使用。 eg1 eg2 输出 eg3 效果等同eg...

  • Go中的函数

    在Golang中函数有包内的函数,有包外的函数,还有闭包函数(匿名函数) 包内函数是以小写字母开头的,包外函数是以...

  • GO基础7-函数详解

    自定义类型 将函数作为另一函数的参数 函数作为返回值 匿名自执行函数接收参数 函数递归:自己调用自己 闭包 闭包可...

  • 函数 闭包 作用域链

    函数申明: 函数表达式: 递归 闭包 闭包是有权访问另一个函数作用域中的变量函数。 即使函数中的匿名函数被返回了,...

  • Golang递归函数、函数类型、匿名函数和闭包

    1. 递归函数 递归指函数可以直接或间接的调用自身。 递归函数通常有相同的结构:一个跳出条件和一个递归体。所谓跳出...

  • golang-闭包

    最近学习golang的匿名函数 发现闭包还是有点意思 闭包基本概念:闭包是可以包含自由(未绑定到特定对象)变量的代...

  • 15.javascript 匿名函数和闭包

    学习要点: 1.匿名函数2.闭包 匿名函数就是没有名字的函数,闭包是可访问一个函数作用域里变量的函数。声明:本节内...

  • go 基本函数

    多返回值函数 递归 函数类型 type 回调函数 和多态(强大) 匿名函数 与 闭包 关键字defer(defer...

  • JavaScript学习笔记(四)——函数表达式

    匿名函数 作用:模仿块级作用域 递归 严格模式下使用命名函数 闭包 闭包是指有权访问另一个函数作用域中的变量的函数...

  • 理解javascript(匿名函数和闭包)这篇文章就够了

    匿名函数就是没有名字的函数,闭包是可访问一个函数作用域里变量的函数。 一.匿名函数 二:闭包 闭包的概念:闭包是指...

网友评论

      本文标题:golang入门到放弃:2.匿名函数、闭包、递归函数

      本文链接:https://www.haomeiwen.com/subject/ocwwqktx.html