困惑
接触Rust也一段时间了,但对References(引用) 、borrowing(借用) 、 &关键字、ref关键字、* 关键字,这几个词非常困惑。常见的问题不在乎下面几条:
&关键字是代表引用还是借用?
ref 和 & 有什么区别?
总是与c++的引用对比,他们意思相同?(因为人在学习中总与现有的知识对比,所以有了这一条)
网上有很多对Rust中引用和借用部分进行翻译和解释。看得真是云里雾里,一会说借用,一会说引用,那到底是引用还是借用?
现象
rust中借用和引用的附带功效都一样,就是都有生命周期。借用使用&关键字,引用使用ref关键字。借用的对象是必须存在的,引用的对象可以虚拟的,后期附上对象。
我看这网上的一段解释,Rust的引用和c++ 语言的引用完全不一样啊,c++ 语言说的是,引用类似变量别名,声明引用时,必须同时对其进行初始化。
引用的声明方法:类型标识符 &引用名=目标变量名
再看下出自《Programming Rust Fast, Safe Systems Development》
in Rust terminology, we say that it borrows a reference to x. Given a
reference r, the expression *r refers to the value r points to. These are very much like
the & and * operators