首页HTML

Swift闭包

本文源自Swift中文网

闭包可以在其定义的上下文中捕获常量或变量。 即使定义这些常量和变量的原域已经不存在,闭包仍然可以在闭包函数体内引用和修改这些值。
Swift最简单的闭包形式是嵌套函数,也就是定义在其他函数的函数体内的函数。 嵌套函数可以捕获其外部函数所有的参数以及定义的常量和变量。
下例为一个叫做 makeIncrementor 的函数,其包含了一个叫做 incrementor 嵌套函数。 嵌套函数 incrementor 从上下文中捕获了两个值,runningTotal 和 amount。 之后 makeIncrementor 将 incrementor 作为闭包返回。 每次调用 incrementor 时,其会以 amount 作为增量增加 runningTotal 的值。

func makeIncrementor(forIncrement amount: Int) -> () -> Int { var runningTotal = 0 func incrementor() -> Int { runningTotal += amount return runningTotal } return incrementor } 

makeIncrementor 返回类型为 () -> Int。 这意味着其返回的是一个函数,而不是一个简单类型值。 该函数在每次调用时不接受参数只返回一个 Int 类型的值。完整版请查看http://see.xidian.edu.cn/cpp/html/2285.html
makeIncrementor 函数定义了一个整型变量 runningTotal (初始为0) 用来存储当前跑步总数。 该值通过 incrementor 返回。

posted @ 2014-06-06 19:54  莫之烟  阅读(93)  评论(0)    收藏  举报
页脚HTML