Rust 引用
有两种引用的类型:
- 共享指针:
&
- 可变指针:
&mut
它们遵守以下的规则:
- 引用的生命周期不能超过被引用内容
- 可变引用不能存在别名(alias)
就这些。这就是全部的引用模型。
当然,我们可能需要定义一下别名(alias)是什么意思。
error[E0425]: cannot find value `aliased` in this scope
--> <rust.rs>:2:20
|
2 | println!("{}", aliased);
| ^^^^^^^ not found in this scope
error: aborting due to previous error
很不幸,Rust实际上没有定义别名模型。:scream_cat:
在Rust的开发者从语义层面确定别名的意义之前,我们先在下一章讨论一般意义上的别名指什么,还有它为什么很重要。
首先,有几点重要声明:以下的讨论将采用最广泛意义上的别名的定义。而Rust的定义可能会更加严格,需要考虑到可变性和生命周期。我们假设程序都是单线程且不会中断的,同时也不会去考虑存储器映射之类的问题。除非特别指定,否则Rust ...