首页 技术杂谈 正文
  • 本文约464字,阅读需2分钟
  • 190
  • 0

Rust - 引用和借用

摘要

Rust中的引用和借用,是内存安全策略的关键。它们允许你访问数据而不取得其所有权,避免了不必要的数据复制,同时确保了数据竞争的避免,是Rust零成本抽象的体现。

1、引用和借用

  • 参数的类型时&string而不是string
  • &符号就表示引用:允许你引用某些值而不取得其所有权
  • 把引用作为函数参数的行为就叫做借用
  • 引用默认也是不可变的,如果要修改则加入mut关键字
    • 可变引用有一个重要的限制:在特定作用域内,对某一块数据,只能有一个可变的引用
    • 这样做的好处是可在编译时防止数据竞争
fn main() {
    let s1 = String::from("Hello");
    let len = calculate_length(&s1);
    println!("The length of {} is {} ",s1,len)

    // 修改则加入mut关键字
    let mut s2 = String::from("World");
    let len2 = calculate_length2(&mut s1);
    println!("The length of {} is {} ",s2,len2)

}

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

fn calculate_length2( s: &mut String) -> usize{
    s.len()
}
评论