我对结构与类感到困惑。我看过这个例子根据这个例子https://www.codeply.com/go/76fzFtggt2根据链接可能是代码输出为 15,15,15,20
BUT代码输出为 因为结构未更改,但是当我在Xcode上运行代码时,它会返回 15,15,20,20
class objectmanagement
{
public var x : Int = 10;
func display()
{
print("\(x)")
}
}
struct StuctManagement{
var obj = objectmanagement()
}
let SA = StuctManagement()
SA.obj.x = 15
var SB = StuctManagement()
SB.obj = SA.obj
SA.obj.display()
SB.obj.display()
SB.obj.x = 20
SA.obj.display()
SB.obj.display()
我很困惑,请帮助我理解与类输出相同的输出
答案 0 :(得分:1)
快速class
是引用类型。 (请参阅here)
当你说:
SB.obj = SA.obj
这意味着SA的对象是SB中的确切对象。 (SA.obj和SB.obj有一个指针)
尽管
let SB = SA
复制SA并创建具有不同引用的SB。