我试图了解声明以下可选数组之间的区别。
问题 1) 在下面的示例中,假设数组附加了一个 nil 值,会发生什么以及哪些变量声明不会崩溃?
问题 2) 类似地想象我们用 someObject 类型交换了类型 String。如果对象未能正确初始化并返回 nil,会发生什么以及哪些变量声明不会崩溃?
我相信 1,2) 的答案都是 var 3 和 var 4。我也认为 var one & var two 如果它们被初始化 () 可以工作,但我不确定。我相当肯定 var 5 和 var 6 在尝试追加数组时会崩溃。
问题 3) 假设我使用选项 var one & var two & 它们被初始化为空数组,我可以添加 nil/空对象/字符串吗?
问题 4)假设我选择了 var 3 和 var 4 选项,是否建议使用 compactmap 过滤掉 nil 值?
问题 5) 假设我选择了 var 5 和 var 6 选项,是否建议使用 nil 合并或保护语句来检查 nil/空对象/字符串以检查值?
var one : Array<String?> //array containing optional strings
//is the …
Run Code Online (Sandbox Code Playgroud) swift ×1