【问题标题】:Swift Pass Variable to ReferenceSwift 将变量传递给引用
【发布时间】:2022-08-22 22:29:07
【问题描述】:

在 C++ 中你可以做

int x = 5;
int &y = x;

所以x 和y 都指向同一个地方。我可以在 Swift 中做到这一点吗?

我正在编写一个具有某些功能的类,以及另一个基本上是驱动程序的类。

class Driver {

    var otherClass: OtherClass
    var referenceVariable: Int = otherClass.referenceVariable // how to make a reference here
   
    ...

}

或者在 Swift 中是否有更好/更语义正确的方法来做到这一点?

  • 你想做什么?
  • 这回答了你的问题了吗? Pointers in Swift
  • 您在 otherClass 中有对 OtherClass 的引用,并且可以通过这种方式访问​​ referenceVariable。

标签: swift


【解决方案1】:

Int 是 Swift 中的结构。 Swift 中的结构是第一公民。基本上 结构是值类型。值类型通常在分配时被复制。

如果要使用引用类型,只需使用类。

您的任务的基本解决方案之一是将 Int 值包装在一个类中

final class IntWrapper {

   let value: Int

   init(value: Int) {
      self.value = value  
   }
}

现在,更改 referenceVariable: IntWrapper 将更改对它的所有引用

class Driver {

   var otherClass: OtherClass
   var referenceVariable: IntWrapper = otherClass.referenceVariable // how to make a reference here

  ...
}

如果你想在你的类 IntWrapper 上获得指针,你可以通过这种方式创建它。

var pointer = UnsafePointer(&i)

但是,我想,你不会需要它

【讨论】:

    猜你喜欢
    • 2018-09-23
    • 1970-01-01
    • 1970-01-01
    • 2016-02-16
    • 1970-01-01
    • 2015-01-27
    • 2014-01-05
    • 2013-01-27
    • 1970-01-01
    相关资源
    最近更新 更多