我想在Swift中存储一个对原始类型(Double,Int)的引用,这样如果一个变量被改变,另一个也会被改变。下面是一个例子:
class MyClass {
var value: Double?
}
var myValue = 1.0
var instance = MyClass()
instance.value = myValue // <-- how to set a reference?
myValue = 2.0 // => I want instance.value to change to 2.0
instance.value = 3.0 // => I want myValue to change to 3.0
这可能吗?
3条答案
按热度按时间tp5buhyn1#
您可以使用class-holder:
或者尝试阅读有关In-Out参数的信息,也许它会在某些方面对您有所帮助:
如上所述,变量参数只能在函数本身内更改。如果希望函数修改参数值,并且希望这些更改在函数调用结束后保持不变,请将该参数定义为in-out参数。
您可以在参数定义的开头放置inout保留字来写入in-out参数。in-out参数的值会传入函式,由函式修改,然后传回函式以取代原始值。
您只能将变数当做in-out参数的参数传递。您不能将常数或常值当做参数传递,因为常数和常值都无法修改。当您将变数当做参数传递给inout参数时,请在变数名称前直接放置&符号,以表示函数可以修改它。
ndasle7k2#
在Swift中,我能想到的最类似的东西是
inout
变量,它们在Swift中被允许作为构造函数参数(但是将它们保存到变量中会使它们停止工作):因此,我不相信你想要的语法是可能的。但是,如果你能重新解决这个问题,也许inout参数可以作为替代。
wtlkbnrh3#
我用这个:
示例: