现实世界中的值和引用
假定你在读一份非常棒的东西,希望一个朋友也去读它。为了避免被人投诉支持盗版,进一步假定它是公共领域中的一份文档。那么,需要为朋友提供什么才能让他读到文档呢?
这完全取决于阅读的内容。 先假设你正在读的是一份真正的报纸。为了给朋友一份,需要影印报纸的全部内容并交给他。届时,他将获得属于他自己的一份完整的报纸。在这种情况下,我们处理的是值类型的行为。所有信息都在你的手上,不需要从任何其他地方获得。制作了副本之后,你的这份信息和朋友的那份是各自独立的。可以在自己的报纸上添加一些注解,他的报纸根本不会改变。
再假设你正在读的是一个网页。与前一次相比,这一次,唯一需要给朋友的就是网页的 URL。这是引用类型的行为,URL 代替引用。为了真正读到文档,必须在浏览器中输入 URL ,并要求它加载网页来导航引用。另一方面,假如网页由于某种原因发生了变化(如一个维基页面,你在上面添加了自己的注释),你和你的朋友下次载入页面时,都会看到那个改变。