結構是值型別

與通過引用傳遞的類不同,結構通過複製傳遞:

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

如果兩個結構例項比較相等,則認為它們相同。

總的來說,這些區分結構和類的特徵是使結構價值型別的原因。