Skip to content

29 复制类对象 ​

需要新的一层类身份时,显式调用 copy()。

norm
class Counter {
  Integer value
}

main() {
  Counter original = Counter(value: 2)
  Counter copied = original.copy()
  copied.value = 5
  printLine(original.value)
  printLine(copied.value)
  printLine(original == copied)
}

预期输出:

text
2
5
false

副本最初拥有相同字段值,随后可独立修改。由于类按身份比较,相等结果仍为假。若字段指向其他类对象,除非另行复制,它们仍会共享。

动手试试:加入指向另一个类对象的字段,观察浅复制。

详细规则:参考。

Norm 0.25