Rust返回值与作用域

Rust中在函数返回值的时候也会发生作用域的转移。

示例程序:

fn main() {
    let s1 = gives_ownership();
    let s2 = String::from("hello");
    let s3 = takes_and_gives_back(s2);
}

fn gives_ownership() -> String {
    let some_string = String::from("yuyoubei");
    some_string
}

fn takes_and_gives_back(a_string: String) -> String {
    a_string
}

上述程序中,main函数中所有权的转移过程:

  • gives_ownership() 中的 some_string \(\rightarrow\) 主函数中的 s1
  • 主函数中的 s2 \(\rightarrow\) takes_and_gives_back() 中的 a_string \(\rightarrow\) 主函数中的 s3
posted @ 2022-01-26 12:24  鱼又悲  阅读(188)  评论(0编辑  收藏  举报