【发布时间】:2015-12-13 23:00:19
【问题描述】:
我想在 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
这可能吗?
【问题讨论】:
-
只是不要期望 Swift 能像这样工作。 Swift 没有像 C++ 那样的引用(即使那样这也是.. 可疑的);虽然 Swift 中有 pointer support 这仍然是 错误 编写 Swift 代码的方式;相反,容器“MyClass”实例通过可变性和对象共享语义充当“引用”。如果您需要另一个“引用”分隔,请创建另一个包装器类型。
-
请参阅stackoverflow.com/questions/26436932/…,了解如何创建通用的“Box”或“Holder”或“Ref”类型。
-
@user2864740:谢谢,我知道指针是一种不好的做法(直接访问内存),包装器类型可能是最好的解决方案。
标签: swift pass-by-reference swift2