swift - 为什么将未命名的函数作为转换传递给数组会在最远的抽象中为 Playground 上的迭代计数加一

标签 swift

我正在适应将未命名函数作为参数传递的过程,我正在使用它来练习,基于 the Swift Programming Guide. 中的示例

所以我们有一个 Int 数组:

var numbers: Int[] = [1, 2, 3, 4, 5, 6, 7]

然后我像这样应用转换:(7)

func transformNumber(number: Int) -> Int {
    let result = number * 3
    return result
}

numbers = numbers.map(transformNumber)

等于:(7)

numbers = numbers.map({(number: Int) -> Int in
    let result = number * 3
    return result;
    })

等于:(8)

numbers = numbers.map({number in number * 3})

等于:(8)

numbers = numbers.map({$0 * 3})

等于:(8)

numbers = numbers.map() {$0 * 3}

正如您在下图中看到的,playground 边栏中的迭代计数显示,在函数声明的最远抽象中,它有一个 8 计数。

enter image description here

问题

为什么最后两个示例显示为 8 次迭代?

最佳答案

它并没有显示 8 次迭代,真的。它显示在那条线上执行了 8 件事。作为 map 函数的一部分执行了 7 次,第 8 次将赋值返回给 numbers 变量。

看起来这可能会提供更有用的诊断。我强烈建议您通过 https://bugreport.apple.com 提供反馈.

关于swift - 为什么将未命名的函数作为转换传递给数组会在最远的抽象中为 Playground 上的迭代计数加一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24006731/

相关文章:

swift - Swift 2.0 上的 NSUserDefaults 错误

ios - 它抛出这个错误 : Value of type 'StorageMetadata' has no member 'downloadURL'

swift - 为每个段设置特定的边框

ios - 自动布局和线性方程

objective-c - stringByReplacingOccurrencesOfString 不起作用?

ios - 如何使用 swift 将相同的背景图像添加到我的 ios 应用程序中的所有 View ?

arrays - 设置交集错误

ios - 将值传递给 WKWebView Swift

ios - 如何让数组一一显示在标签上

ios - 快速动画不工作