从Rust书籍所有权章节中得知,不可拷贝的值可以通过转移所有权或使用可变或不可变引用传递给函数。当你转移一个值的所有权时,它就不能在原始函数中使用了:如果你想要使用它,必须将其返回。当你传递一个引用时,你借用了这个值,并且仍然可以使用它。
我来自那些默认情况下数值是不可变的语言(如Haskell、Idris等)。因此,我可能从未考虑过使用引用。在两个地方有相同的值看起来很危险(或者至少很尴尬)。既然引用是一种特性,肯定有使用它们的理由。
有哪些情况下我应该强制自己使用引用?这些情况是什么,为什么它们有益?还是只是为了方便,传递所有权是可以的?
我来自那些默认情况下数值是不可变的语言(如Haskell、Idris等)。因此,我可能从未考虑过使用引用。在两个地方有相同的值看起来很危险(或者至少很尴尬)。既然引用是一种特性,肯定有使用它们的理由。
有哪些情况下我应该强制自己使用引用?这些情况是什么,为什么它们有益?还是只是为了方便,传递所有权是可以的?