美文网首页
Go 语言极速入门6 - 闭包

Go 语言极速入门6 - 闭包

作者: 原水寒 | 来源:发表于2018-11-11 15:40 被阅读262次
// 该函数的返回值是一个函数:func(value int) int
func adder() func(value int) int {
    sum := 0 // 自由变量,Go 的闭包是可以含有自由变量的
    return func(value int) int {
        sum += value
        return sum
    }
}

func main() {
    add := adder() // 此处返回一个函数
    for i := 0; i < 10; i++ {
        fmt.Printf("0 + ... + %d = %d", i, add(i)) //调用函数add
        fmt.Println()
    }
}
  • adder() 函数的返回值是一个函数
  • 注意:在 Go 语言中,闭包是可以含有自由变量的

相关文章

  • Go 语言极速入门6 - 闭包

    adder() 函数的返回值是一个函数注意:在 Go 语言中,闭包是可以含有自由变量的

  • Go 语言极速入门

    本系列文章主要是记录《Go 语言实战》和《Google 资深工程师深度讲解 Go 语言》的学习笔记。 Go 语言极...

  • golang

    golang中闭包的问题 熟悉go语言的开发者都知道,go的闭包是可以记录状态的。当我想用闭包来实现保存某一str...

  • go语言 闭包

  • Go 语言极速入门总结

    Go 语言使用 非常简单,是专门针对各种语言的痛点设计的!!!在前边的源码分析中,分析了 Go 1.11.1 的基...

  • Go语言中的函数 为什么是一等公民

    关键点 Go语言中,支持: 普通函数 匿名函数 闭包 在Go语言中,函数属于一等公民(first-class)? ...

  • Go 语言函数闭包

    Go 语言支持匿名函数,可作为闭包。匿名函数是一个"内联"语句或表达式。 匿名函数的优越性在于可以直接使用函数内的...

  • Go语言里面的变量作用域问题

    变量的作用域,通常有包package范围、函数func范围、或者闭包closure范围, go语言毕竟比C语言复杂...

  • go 学习笔记之10 分钟简要理解 go 语言闭包技术

    闭包是主流编程语言中的一种通用技术,常常和函数式编程进行强强联合,本文主要是介绍 Go 语言中什么是闭包以及怎么理...

  • Go 语言极速入门9 - Channel

    当一个资源需要在 goroutine 之间共享时,通道在 goroutine 之间架起了一个管道,并提供了确保同步...

网友评论

      本文标题:Go 语言极速入门6 - 闭包

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