学习Swift:闭包

嗨,大家好!

我决定我也想发布一些我在编程时学到的概念。 对于那些不知道的人,我是一名软件工程师,目前专注于在Android中构建移动应用程序。 但是,我喜欢iOS,自2014年以来一直在Swift中制作应用。

这将简短明了,将来我可能会对此进行扩展。

什么是封包?

闭包是可以像变量一样传递的函数。 一种将闭包视为持有函数的类型的方法,即字符串,整数,双精度型。

了解功能也很重要。 函数是在Swift中使用func关键字定义的代码块。 函数可以采用并返回无,一个或多个参数。

为什么使用它们?

因为它们使用简单的语法,所以可以使代码更整洁并易于阅读。 它们还使您可以以一种不太复杂的方式灵活地重用代码。 通过降低复杂性,这也使您的代码更易于调试。

我该如何写闭包?

这是闭包的几种形式:

  var noParametersOrReturn:()->()= { 
 打印(“无参数或返回类型”) 
  } 
  var noParametersReturnString:()->字符串= { 
 返回“无参数,返回字符串” 
  } 

如果闭包是函数的最后一个参数,则尾随闭包允许您简化语法。

func sayHiAndRunClosure(name: String, closure: () -> ()) { 
print("Hi, \(name)!")
closure()
}
 sayHiAndRunClosure(name: "Mary") { 
print("The closure was ran!")
}

有一个更短的语法。 闭包参数可以按位置($ 0,$ 1,…)而不是名称进行引用。

 设数字= [1,1,2,5] 
让奇数=数字。过滤器{$ 0%2 == 1}
 让名字= [“乔”,“詹姆斯”,“乔恩”,“杰米”] 
let even = names.filter {$ 0.characters.count> 3}

将闭包作为参数,对数组的每个元素执行闭包。

有哪些用例?

例如,假设您有一个耗时的任务,并且希望在完成时运行一段代码。 使用闭包,您可以将函数作为变量接受,以在任务完成后调用。

网络请求 -从服务器获取数据并更新UI

用户触摸事件 -在触摸事件(轻击,拖动,挤压)之后运行一段代码

就是这样! 闭包快速概览。 我希望继续提供更多内容,如有任何建议或改进,请在下面评论。

照顾自己。

-罗德尼