<address id="tbpfr"></address>

            <sub id="tbpfr"></sub>

                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
                相关文章
                相关标签/搜索
                每日一句
                  每一个你不满意的现在,都有一个你没有努力的曾经。
                公众号推荐
                   一个历史类的公众号,欢迎关注
                一两拨千金
                中彩堂XXyXCCXXyX·US