Rust 所有权

Rust 最核心的概念就是 所有权(Ownership)

三条规则

  1. 每个值有且仅有一个 所有者
  2. 同一时刻只能有一个所有者
  3. 所有者离开作用域时,值被 自动释放

借用

fn main() {
    let s = String::from("hello");
    let len = calculate_length(&s);  // 借用,不转移所有权
    println!("{} 的长度是 {}", s, len); // s 仍然有效
}

fn calculate_length(s: &String) -> usize {
    s.len()
}