我正在根据Swift编程指南中的示例,将未命名的函数作为参数传递,并且我正在使用它来练习.
所以我们有一个Ints 数组:
var numbers: Int[] = [1, 2, 3, 4, 5, 6, 7]
Run Code Online (Sandbox Code Playgroud)
我应用这样的变换:(7)
func transformNumber(number: Int) -> Int {
let result = number * 3
return result
}
numbers = numbers.map(transformNumber)
Run Code Online (Sandbox Code Playgroud)
等于:(7)
numbers = numbers.map({(number: Int) -> Int in
let result = number * 3
return result;
})
Run Code Online (Sandbox Code Playgroud)
等于:(8)
numbers = numbers.map({number in number * 3})
Run Code Online (Sandbox Code Playgroud)
等于:(8)
numbers = numbers.map({$0 * 3})
Run Code Online (Sandbox Code Playgroud)
等于:(8)
numbers = numbers.map() {$0 * 3}
Run Code Online (Sandbox Code Playgroud)
正如您在下图中所看到的,操场侧栏中的迭代计数显示,在函数声明的最远抽象中,它具有8个计数.

为什么它显示为最后两个示例的8次迭代?
实际上,它并没有显示 8 次迭代。它显示该行执行了 8 件事。作为函数的一部分,有 7 次执行map,第 8 次执行返回到numbers变量中。
看起来这可能可以提供更有用的诊断。我强烈鼓励您通过https://bugreport.apple.com提供反馈。
| 归档时间: |
|
| 查看次数: |
313 次 |
| 最近记录: |