gpt4 book ai didi

swift - 为什么多个解包选项是不可能的?

转载 作者:搜寻专家 更新时间:2023-11-01 05:48:08 25 4
gpt4 key购买 nike

我一直在 swift 中使用可选项。我经常使用条件展开模式:

var myOptional: AnyObject?
if let unwrapped = myOptional {
// do stuff
}

然而,有时我有两个可选值,我只想在它们都非零时才使用它们。因此,我尝试使用以下语法:

var myOptional: AnyObject?
var myOtherOptional: AnyObject?
if let unwrapped = myOptional && let otherUnwrapped = myOtherOptional? {
// do stuff
}

我试过将这两个部分放在括号中等,但似乎没有办法做到这一点。我不能这样做有充分的理由吗?显然,我可以将一个语句嵌入到另一个语句中,但我更愿意将它们全部放在一行中。

最佳答案

Swift 1.2 开始,您可以解包多个可选值和条件。

The “if let” construct has been expanded to allow testing multiple optionals and guarding conditions in a single if (or while) statement using syntax similar to generic constraints: if let a = foo(), b = bar() where a < b, let c = baz() { } This allows you to test multiple optionals and include intervening boolean conditions, without introducing undesirable nesting (i.e., to avoid the “pyramid of doom”).

关于swift - 为什么多个解包选项是不可能的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28171075/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com