元组可变性的规则是什么?

时间:2015-02-02 16:49:21

标签: swift tuples immutability

通过试验和错误我在Swift中发现了一些关于元组和可变性的事实,但是想了解实际的规则。考虑这样的代码:

class T
{
    var f : String = "hello"
}

let a = T();
let b = (f : "hello", "");
a.f = "world";
b.f = "world";
println(a.f)
println(b.f)

a的行为类似于固定引用(您可以更改对象的任何成员,而不是主要引用)。所以它就像C#中的readonly

b的行为更像是常量值 - 上面的代码无法编译。可以说let(或var)适用于元组的所有成员。

但这是我的猜测 - 所以回到我的问题。元组及其可变性的规则是什么?

1 个答案:

答案 0 :(得分:1)

The Swift Programming Language: The Basics中所述,元组是Swift中的复合类型。因此,如果创建一个let的常量变量,它具有元组作为类型,则元组中的所有值也会变为常量。