计算属性中的基础变量| Swift
我的问题解释如下。 TLDR:我的代码要求我使用第三个变量来表示计算属性的值。我想知道是否有一种方法可以只使用两个变量 因此,我有一个名为计算属性中的基础变量| Swift,swift,Swift,我的问题解释如下。 TLDR:我的代码要求我使用第三个变量来表示计算属性的值。我想知道是否有一种方法可以只使用两个变量 因此,我有一个名为firstNumber的计算属性,它是一个布尔值。 每次更改它的值时,我都要更改另一个变量,isDecimal,它独立于firstNumber,并且有许多不同的东西可以更改它 为此,当firstNumber设置为false时,我还将isDecimal设置为false。唯一的问题是我还需要firstnumbers布尔值,因此我创建了一个名为firstnumber
firstNumber
的计算属性,它是一个布尔值。
每次更改它的值时,我都要更改另一个变量,isDecimal
,它独立于firstNumber
,并且有许多不同的东西可以更改它
为此,当firstNumber
设置为false时,我还将isDecimal
设置为false。唯一的问题是我还需要firstnumbers
布尔值,因此我创建了一个名为firstnumberrapi
的底层布尔值
我不认为这是做我想做的事情的最好方式。
我想知道是否有人可以建议在更改firstNumber
时设置isDecimal
,而不创建第三个firstnumberrapi
变量
var isDecimal = false
var firstNumberAPI = false
var firstNumber: Bool{
get{
return firstNumberAPI
}
set{
firstNumberAPI = newValue
if newValue==true{
isDecimal = false
}
else{
isDecimal = true
}
}
}
不需要
firstNumberRapi
变量。将firstNumber
更改为:
var isDecimal = false
var firstNumber: Bool {
didSet {
isDecimal = !firstNumber
}
}
有关
didSet
的详细信息,请参阅本书的一节。无需使用firstnumberrapi
变量。将firstNumber
更改为:
var isDecimal = false
var firstNumber: Bool {
didSet {
isDecimal = !firstNumber
}
}
有关
didSet
的详细信息,请参阅本书的一节,谢谢您的帮助!你能解释一下什么是“迪塞特”吗?我以前从未见过这种语法。@LeoDabus当然,因为那是不对的。您需要var firstNumber:Bool=true{…}
。不,您说的是firstNumber=false
。如果在:Bool
@LeoDabus之后简单地添加=true
,那么答案中的代码就可以按原样编译,而不需要类,这就很困难了。你发表了一堆我回复的评论。然后你删除了你所有的评论,所以我删除了我的。现在,您发布了一组具有相同注释的新内容。请不要再让我重复了。谢谢如果将我的答案中的代码按原样放在一个类中,那么只要在init
方法中设置firstNumber
,或者添加=true
,代码就可以编译。同样,就像我第一次说的,这些都与问题无关。@LeoDabus做你想做的事。没有什么可编辑的。信不信由你,人们足够聪明,能够读懂答案并明白该怎么做。这不是复制粘贴。这是为了回答所问的问题。我已经在评论中提到了你的问题。谢谢你的帮助!你能解释一下什么是“迪塞特”吗?我以前从未见过这种语法。@LeoDabus当然,因为那是不对的。您需要var firstNumber:Bool=true{…}
。不,您说的是firstNumber=false
。如果在:Bool
@LeoDabus之后简单地添加=true
,那么答案中的代码就可以按原样编译,而不需要类,这就很困难了。你发表了一堆我回复的评论。然后你删除了你所有的评论,所以我删除了我的。现在,您发布了一组具有相同注释的新内容。请不要再让我重复了。谢谢如果将我的答案中的代码按原样放在一个类中,那么只要在init
方法中设置firstNumber
,或者添加=true
,代码就可以编译。同样,就像我第一次说的,这些都与问题无关。@LeoDabus做你想做的事。没有什么可编辑的。信不信由你,人们足够聪明,能够读懂答案并明白该怎么做。这不是复制粘贴。这是为了回答所问的问题。我已经在评论中提到了你的问题。