【发布时间】:2015-05-26 14:01:53
【问题描述】:
我是 IOS 的新程序员。
我阅读了苹果文档,但我不太明白。
我的问题是,
1.什么时候使用闭包?
2.闭包有什么用?
我基本上想了解了解闭包的概念如何帮助我改进编码。任何帮助将不胜感激..
【问题讨论】:
我是 IOS 的新程序员。
我阅读了苹果文档,但我不太明白。
我的问题是,
1.什么时候使用闭包?
2.闭包有什么用?
我基本上想了解了解闭包的概念如何帮助我改进编码。任何帮助将不胜感激..
【问题讨论】:
他妈的swiftblocksyntax.com
Swift 中的闭包类似于 C 和 Objective-C 中的块。 闭包是一流的对象,因此它们可以嵌套和传递(就像 Objective-C 中的块一样)。 在 Swift 中,函数只是闭包的一种特殊情况。
定义闭包:
闭包通常用花括号 { } 括起来,并由函数类型 () -> () 定义,其中 -> 分隔参数和返回类型,后跟 in 关键字,将闭包头与其主体分开.
{ (params) -> returnType in
statements
}
一个例子可以是应用于数组的 map 函数:
let padawans = ["Knox", "Avitla", "Mennaus"]
padawans.map({
(padawan: String) -> String in
"\(padawan) has been trained!"
})
已知类型的闭包:
当知道闭包参数的类型时,你可以这样做:
func applyMutliplication(value: Int, multFunction: Int -> Int) -> Int {
return multFunction(value)
}
applyMutliplication(2, {value in
value * 3
})
闭包速记参数名称:
闭包参数可以通过位置($0, $1, ...)而不是名称来引用
applyMutliplication(2, {$0 * 3})
此外,当闭包是函数的最后一个参数时,括号可以省略:
applyMutliplication(2) {$0 * 3}
【讨论】: