在Xcode Playground中调用map()为何会产生额外值?
Xcode Playground中第4行额外数值5的来源解释
你的代码如下:
import UIKit let arr: [Int] = [1, 2, 3] let result = arr.map { x in x + 2 } result
这个额外的5是Xcode Playground的调试展示特性导致的:
- Playground会逐行显示代码中每个表达式的执行结果,包括闭包内部的每一次执行返回值。
- 你的
map闭包会遍历数组的3个元素,最后一次处理的是3,计算3+2得到5,Playground就把这个闭包最后一次执行的结果显示在第4行旁边。 - 这个5不是
result变量的完整值,result实际是[3, 4, 5],你可以看最后一行result的输出结果确认这一点。
内容的提问来源于stack exchange,提问作者7stud
相关产品推荐
相关产品推荐

