gpt4 book ai didi

Swift:如果不等于 nil 则设置变量

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

我正在使用 Swift,我想知道如何在一行代码中实现这一点:

If a != nil, myVariable = a

else if a == nil, myVariable = b

我需要这样做以使其适合

var myVariable = a {
didSet{
//Do something
}
}

有没有一种方法可以在一行中执行此操作,这样我就不必在其他地方更改它并触发 didSet{}?

像这样:

if var myVariable = a 
else myVariable = b {
didSet{
//Do something
}
}

或者...

var if a != nil {myVariable = a}
else {myVariable = b} {
didSet{
//Do something
}
}

我知道这可能需要一些时间才能理解我的意思,我已尽力解释。

编辑 --->编译器说:

Left side of nil coalescing operator '??' has a non-optional type '[[Bool]]', so the right side is never used

Treating a forced downcast to '[[Bool]]' as optional will never produce 'nil'

这是使用合并运算符的样子:

var purchased =
UserDefaults.standard.array(forKey: "purchased") as! [[Bool]] ??
[[true, false], [true, false], [true, false], [true, false], [true, false]] { //a is left, b is right
didSet {
//Do something
}
}

任何想法将不胜感激。谢谢。

最佳答案

怎么样

var myVariable = a ?? b

这会将 myVariable 设置为 a 除了 a == nil 的情况,然后它将 myVariable 设置为 b。 didSet 将使用相应的值调用一次。它被称为“零合并运算符”。

您编辑的问题表明 a 在您的情况下不能为 nil,因为您强制解包数组(使用 as!)。相反,您应该有条件地解包它(如?),以便您的代码可以检查 nil 并改用硬编码的默认值。

关于Swift:如果不等于 nil 则设置变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44623451/

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