从Rust 书中关于所有权的章节中,不可复制的值可以通过转移所有权或使用可变或不可变引用传递给函数。当您转移一个值的所有权时,它不能再在原始函数中使用:如果您愿意,您必须将其返回。当你传递一个引用时,你借用了这个值并且仍然可以使用它。
我来自默认情况下值不可变的语言(Haskell、Idris 等)。因此,我可能根本不会考虑使用引用。在两个地方具有相同的值对我来说看起来很危险(或者至少很尴尬)。由于引用是一项功能,因此必须有理由使用它们。
在某些情况下我应该强迫自己使用引用吗?这些情况是什么,为什么它们是有益的?还是他们只是为了方便而默认传递所有权是可以的?