我的问题解释如下。 TLDR:我的代码要求我使用第三个变量来表示计算属性的值。我想知道是否有办法只用两个变量来做到这一点。
所以我有一个名为 firstNumber
的计算属性,它是一个 bool 值。
每次它的值改变时,我都想改变另一个变量 isDecimal
,它独立于 firstNumber
并且有很多不同的东西可以改变它。
为此,当 firstNumber
设置为 false 时,我还将 isDecimal
设置为 false。唯一的问题是我还需要 firstNumber
bool 值有一个值,所以我创建了一个名为 firstNumberAPI
的底层 bool 值。
我认为这不是做我想做的事情的最佳方式。
我想知道是否有人可以建议一种在 firstNumber
更改时设置 isDecimal
的方法,而无需创建第三个 firstNumberAPI
变量。
var isDecimal = false
var firstNumberAPI = false
var firstNumber: Bool{
get{
return firstNumberAPI
}
set{
firstNumberAPI = newValue
if newValue==true{
isDecimal = false
}
else{
isDecimal = true
}
}
}
最佳答案
不需要 firstNumberAPI
变量。将 firstNumber
更改为:
var isDecimal = false
var firstNumber: Bool {
didSet {
isDecimal = !firstNumber
}
}
参见 Property Observers节The Swift Programming Language预订有关 didSet
的详细信息。
关于swift - 计算属性中的基础变量 | swift ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43620641/