您的位置:首页 > 编程语言 > Go语言

Go语言入门看这一篇就go了

2019-12-19 18:01 1091 查看

package main

import "fmt"

// This function `intSeq` returns another function, which

// we define anonymously in the body of `intSeq`. The

// returned function _closes over_ the variable `i` to

// form a closure.

func intSeq() func() int {

i := 0

return func() int {

i += 1

return i

}

}

func main() {

// We call `intSeq`, assigning the result (a function)

// to `nextInt`. This function value captures its

// own `i` value, which will be updated each time

// we call `nextInt`.

nextInt := intSeq()

// See the effect of the closure by calling `nextInt`

// a few times.

fmt.Println(nextInt())

fmt.Println(nextInt())

fmt.Println(nextInt())

// To confirm that the state is unique to that

// particular function, create and test a new one.

newInts := intSeq()

fmt.Println(newInts())

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  857530