Rust中value owner属于何种实体?求其准确定义
Rust中值的所有者(Owner)准确定义
《Rust Book》提到:
Each value in Rust has an owner
这里的所有者(owner)是Rust中的绑定(binding)——也就是我们常说的变量,而非程序员、语句或代码块。具体说明:
- 当通过
let x = String::from("hello");这类语句创建值时,变量x就成为该String值的所有者 - 所有者拥有对值的完全控制权:可修改值、将所有权转移给其他绑定、或在自身作用域结束时自动释放值占用的内存
- 代码块是作用域的载体,决定绑定的生命周期,但本身不是所有者;语句只是创建或转移绑定的操作,也不属于所有者
补充:所有权转移(move)、借用(borrow)都是围绕绑定展开的——比如let y = x;会把x的所有权转移给y,此时x将不再拥有该值的控制权。
内容的提问来源于stack exchange,提问作者Ari Fordsham
相关产品推荐
相关产品推荐

