为什么可选阵列上的映射与非optionalArray不同

时间:2017-10-06 19:51:04

标签: arrays swift optional enumeration

let optionalArray : [Int]? = [1,2,3]

optionalArray.map({
    print("beforeEach element");
    print($0);
})


let nonOptionalArray  = [1,2,3]

nonOptionalArray.map({
    print("beforeEach element");
    print($0);
})

输出:

  

beforeEach元素
  [1,2,3]
  beforeEach element
  1
  beforeEach element
  2
  beforeEach element
  3

我使用的是OptionalArray,$0 返回整个数组。为什么?我不循环吗?!

1 个答案:

答案 0 :(得分:2)

您正在Optional<[Int]>上运行地图,该地图也支持地图。

您希望optionalArray?.map在可选的可能包装的数组上运行映射。