结构是值类型
与通过引用传递的类不同,结构通过复制传递:
first = "Hello"
second = first
first += " World!"
// first == "Hello World!"
// second == "Hello"
String 是一个结构,因此它在赋值时被复制。
结构也无法使用身份运算符进行比较:
window0 === window1 // works because a window is a class instance
"hello" === "hello" // error: binary operator '===' cannot be applied to two 'String' operands
如果两个结构实例比较相等,则认为它们相同。
总的来说,这些区分结构和类的特征是使结构价值类型的原因。