为什么在 Optional Array 上的映射不同于 non-optionalArray

Why is mapping over Optional Array different from non-optionalArray

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

optionalArray.map({
    print("beforeEach element");
    print([=10=]);
})


let nonOptionalArray  = [1,2,3]

nonOptionalArray.map({
    print("beforeEach element");
    print([=10=]);
})

输出:

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

我使用的是 OptionalArray,[=11=] 返回整个数组 。为什么?我不是在循环吗?!

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

您想要 optionalArray?.map 到 运行 数组上的映射,可选的可能正在包装。