问题1
Rust 最核心的特性之一是 所有权(Ownership)。
请你用自己的话解释一下什么是所有权,以及它和借用(Borrowing)、生命周期(Lifetime)之间的关系。
查看答案
所有权规则: rust中的每一个值都被一个变量拥有,且只能有一个拥有者,当拥有者离开作用域时,这个值会被drop;
借用:分可变和不可变引用;可同时有多个不可变引用,或一个可变引用,但不能混用;
生命周期(Lifetime)
Rust 编译器用“生命周期”来静态检查引用的有效性,确保不会出现悬垂引用。比如函数返回引用时,编译器需要知道这个引用和输入值的生命周期关系。
移动与拷贝
当所有权转移(move)时,旧变量就不能再使用该值;如果类型实现了 Copy trait,才会发生按值拷贝而不是移动。