繪畫世界

Rust 所有权和引用借用以及移动

#所有权和引用借用

能让所有权发生变动的行为:

借用 (borrow)移动 (move)

这两种行为发生后,对于借用的数据如果没有返还 (return)则不能访问,已移动的则在任何时刻都不能访问

借用发生在函数中则能返还,就是在函数退出时自动归还,而在相同作用域下发生的借用就是有借无还了,等同于移动

// 借用一个字符串然后清了返还
#[allow(unused)]
fn borrow(source: &mut String) {
    source.clear();
    source.push_str("喵喵喵")
}

#[allow(unused_mut)]
fn main() {
    let mut s1 = String::from("Hello");
    let mut s2 = &mut s1;
    // s2.push_str(" world!");
    println!("prev: {}, {}", s1, s2);
    // borrow(&mut s2);
    // println!("next: {}, {}", "s1", s2);
}

#Rust

笔记

338 Words

/* 最后更新于 */

上一篇: Some thoughts for the blog in 2021

下一篇: Scrollbar appeared after setting margin-top