Example15.闭包

Go 支持通过 闭包来使用 匿名函数。匿名函数在你想定义一个不需要命名的内联函数时是很实用的。

Example:

package main

import "fmt"


func intfunc() func() int{
    i := 0
    return func() int{
        i += 1
        return i
    }
}

func main(){
    //注意nextint返回的是一个函数,引用时要带括号,否则是个对象
    nextint := intfunc()

    //每次调用返回一个值,有点像python中的生成器。
    fmt.Println(nextint())
    fmt.Println(nextint())
    fmt.Println(nextint())

    //重新实例,值从新开始。
    new_next_int := intfunc()
    fmt.Println(new_next_int())
}

Result:

$ go run example.go
1
2
3
1
相关文章
相关标签/搜索
每日一句
    每一个你不满意的现在,都有一个你没有努力的曾经。
公众号推荐
   一个历史类的公众号,欢迎关注
一两拨千金
管家婆精选心水资料网