【发布时间】:2016-08-30 04:07:26
【问题描述】:
假设我想要存储整数或 nil 的数组 od 数据。例如:
[1,2,3,nil,5,nil,7]
如何使用选项来做到这一点? 当我玩它时,结果总是:
[optional(1),optional(2)...]
我不能强制解包,因为它会在值恰好为 nil 时崩溃。
如果发生这种情况,如何迭代值并将展开的值和 nils 添加到数组中?
【问题讨论】:
-
你可以使用
flatMapstackoverflow.com/a/32876707/2227743 -
所以......你想
print这样的数组:[1,2,3,nil,5,nil,7],而不是这个:[optional(1),optional(2)...]。我没听错吗? -
这正是我想要做的。因为我需要跟踪哪个值是 nil
-
"将未包装的值和 nil 添加到数组中" 数组不能同时包含未包装的值和 nil。如果它可以包含 nil,它必须完全由 Optionals 组成。只有当这是
[Int?](包装 Int 的选项数组)并且1实际上是Optional(1)等等时,您的[1,2,3,nil,5,nil,7]才可能。