通过试验和错误我在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
)适用于元组的所有成员。
但这是我的猜测 - 所以回到我的问题。元组及其可变性的规则是什么?
答案 0 :(得分:1)
如The Swift Programming Language: The Basics中所述,元组是Swift中的复合类型。因此,如果创建一个let
的常量变量,它具有元组作为类型,则元组中的所有值也会变为常量。