当前位置: 首页 > 面试题库 >

$ 0在Swift的闭包中代表什么?

巴照
2023-03-14
问题内容

我已经看到swift中的闭包里面有$ 0,有时它们使用$ 1。$ 0到底是什么,您还可以使用其他$ x?

这是使用中的示例。

applyMutliplication(2, {$0 * 3})
array.map({$0 + 1})

谢谢!


问题答案:

这是一个简写的参数名称。

从《雨燕书》中:

“ Swift自动为内联闭包提供速记参数名称,可使用名称$ 0,$ 1,$ 2等来引用闭包参数的值。”

— Apple Inc. “快速编程语言”。

它有助于减少代码的冗长性(有时以可读性为代价),因此在定义闭包时不必写出很长的参数列表。



 类似资料:
  • 问题内容: 我是Swift的新手,当我遇到转义的闭包时,我正在阅读手册。我根本没有得到手册的描述。有人可以简单地向我解释一下Swift中的转义闭包是什么。 问题答案: 考虑此类: 将传入的闭包分配给类中的属性。 现在是另一个类: 如果我调用,则闭包将存储在的实例中。由于是在闭包中捕获的,因此的实例还将对其具有很强的引用性。 基本上,这是逃脱的闭包的例子! 您可能想知道,“什么?那么封闭从何处逃脱到

  • 闭包(Closures)是自包含的功能代码块,可以在代码中使用或者用来作为参数传值。 Swift 中的闭包与 C 和 Objective-C 中的代码块(blocks)以及其他一些编程语言中的 匿名函数比较相似。 全局函数和嵌套函数其实就是特殊的闭包。 闭包的形式有: 全局函数 嵌套函数 闭包表达式 有名字但不能捕获任何值。 有名字,也能捕获封闭函数内的值。 无名闭包,使用轻量级语法,可以根据上下

  • 我看到的所有在Swift中定义DSL的博客帖子都使用尾随闭包,并使用闭包参数$0。这使得代码冗长,而且我认为很难看。(例如:https://mecid.github.io/2019/01/30/creating-dsl-in-swift) 有没有办法避免这样的代码? 到处都是0美元。 Kotlin通过“带接收器的扩展函数”避免了这种情况(请参阅:带T.()的Kotlin函数签名意味着什么?)。 S

  • 问题内容: 我相信我遇到了一个问题,即我的关闭发生在后台线程上,而UITableView的更新速度不够快。我正在打电话给REST服务,而在关闭时,我有一个电话,但是要花几秒钟的时间才能发生。如何使数据重新加载更快(也许在主线程上?) REST查询功能-使用SwiftyJSON库进行解码 在调试器中调用一次 问题答案: UIKit不是线程安全的。UI仅应从主线程更新: 更新 。在Swift 3及更高

  • 主要内容:以下是纠正/补充内容:Swift 4中的Closures(闭包)类似于组织为块的自包含函数,并且像C和Objective C语言一样调用。 在函数内定义的常量和变量引用被捕获并存储在闭包中。 函数可以看作是闭包的特殊情况,它采用以下三种形式 - 全局函数 嵌套函数 闭包表达式 有名称,不捕获任何值 有名称,从封闭函数中捕获值。 未命名的闭包从相邻块中捕获值 Swift 4语言中的Closures(闭包)表达式遵循清晰,

  • 问题内容: 在Apple文档的参考部分中,有很多这类事情的实例: 的Objective-C“等效”是: 令我惊讶的是,(在Swift参考资料中)下划线和“动作”用斜体字后要留一个空格可能很重要。 但是我不知道这是要传达什么。所以也许问题是…参考文献中使用的约定是否有参考文献? -这是我在此引用中指向下划线使用的页面:https : //developer.apple.com/documentati