closures

package main

import "fmt"

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

func main() {
    nextInt := intSeq()
    fmt.Println(nextInt())
    fmt.Println(nextInt())
    fmt.Println(nextInt())
    newInts := intSeq()
    fmt.Println(newInts())
}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文翻译自这里 函数与闭包在Swift中作为一等公民,可以存储,当作参数传递,并且把它们看待成其他的对象或者类型。...
    __Guan__阅读 973评论 0 0
  • 闭包表达式语法的一般形式: let names = ["Chris", "Alex", "Ewa", "Barry...
    KeymyLin阅读 195评论 0 0
  • 版本记录 前言 我是swift2.0的时候开始接触的,记得那时候还不是很稳定,公司的项目也都是用oc做的,并不对s...
    刀客传奇阅读 720评论 0 1
  • 恕道 作者:王鼎钧 你必须有理想,但是不要公然鄙视那些鼠目寸光的人。你必须有操守,但是不要公然抨击那些蝇营狗苟的...
    I樂樂阅读 936评论 0 1
  • mac一般是不用重装系统的, 但特殊需求,比如,电脑坏了、归还公司电脑什么的 mac重装系统有两种方法 1.在线的...
    十一遥阅读 377评论 0 0