小编Tia*_*ias的帖子

为什么这被认为是借用的

我一直在学习 Rust,并且一直在尝试学习借用检查器的工作原理,但我遇到了这两个例子,我不明白为什么只有其中一个被认为是借用的:

fn main() {
    let mut x = String::from("aa ab");

    let y = first_word(&x);

    x.clear(); //Error cannot borrow X

    println!("{y}");


}

//Returns an i32 reference
fn first_word(s: &String) -> &i32 {
    return &32;
}   
Run Code Online (Sandbox Code Playgroud)
fn main() {
    let mut x = String::from("aa ab");

    let y = first_word(&x);

    x.clear(); //Everything is fine

    println!("{y}");


}

//Returns an i32
fn first_word(s: &String) -> i32 {
    return 32;
}   
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么只有第二个有效吗?

rust borrow-checker borrow

1
推荐指数
1
解决办法
65
查看次数

标签 统计

borrow ×1

borrow-checker ×1

rust ×1