结构是值类型

与通过引用传递的类不同,结构通过复制传递:

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

如果两个结构实例比较相等,则认为它们相同。

总的来说,这些区分结构和类的特征是使结构价值类型的原因。