什么时候在Swift中使用Closure?

时间:2015-03-23 14:20:44

标签: ios swift closures

我是IOS的新程序员。

我阅读了Apple文档,但我并不太了解。

我的问题是,

1.使用关闭时?

2.关闭的用法是什么?

我基本上想了解如何了解闭包的概念可以帮助我改进编码。任何帮助将不胜感激..

1 个答案:

答案 0 :(得分:2)

  

fuckingswiftblocksyntax.com

Swift中的闭包类似于C和Objective-C中的块。 闭包是第一类对象,因此它们可以嵌套并传递(与Objective-C中的块一样)。 在Swift中,函数只是闭包的一个特例。

定义一个闭包:

闭包通常用大括号{}括起来,并由函数类型() - >定义。 (),其中 - >分隔参数和返回类型,后跟in关键字,用于将闭包头与其主体分开。

{ (params) -> returnType in
  statements
}

一个例子可能是应用于数组的地图函数:

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}