【发布时间】:2016-07-14 13:20:21
【问题描述】:
我看到大多数 swift 开发人员都开始使用 .forEach,了解它是另一种迭代数组的方式。但是'$0'的含义是什么以及它是如何工作的?如果它是一个索引,那么它应该递增 0,1,2...
@IBOutlet var headingLabels: [UILabel]!
....
headingLabels.forEach { $0.attributedText = NSAttributedString(string: $0.text!, attributes: [NSKernAttributeName: 1]) }
【问题讨论】:
-
$0 指的是保存在数组中的对象(在您的示例中为 UILabel)。
-
看起来它正在代替循环中的当前元素。该数字可能表示正在使用的函数的位置参数。
-
所以你的意思是说 $0 指的是当前对象?
-
它的意思是简写参数名称 $0 - 代表第一个对象/当前对象
-
请注意,大多数 Swift 开发人员不应该开始使用
.forEach。在某些特定情况下它很有用(特别是在映射/过滤器链的末尾),但它不是for-in的通用替代品,它更灵活,通常更好的 Swift。特别是,for-in正确处理了return、continue和break,其中forEach对return有一些令人惊讶的行为并且不支持其他行为。
标签: ios arrays swift macos foreach