引用赋值变量报错

来源:3-4 引用和借用

打小就给力

2021-04-22 13:54

fn main() {

    let mut s = String::from("any");

    let a = &mut s;

    a.push_str("!");

    println!("{} {}", a, s);

}

上述代码报错(s变量immutable borrow occurs here)
是不是因为视频里说的“同一时间最多只能存在一个可变引用”?
请教老师!


----------------

写成如下

fn main() {

    let mut s = String::from("any");

    let a = &mut s;

    a.push_str("!");

    println!("{}", a);

    println!("{}", s);

}

即可输出两个any!

写回答 关注

1回答

  • 你高兴的太早了
    2022-08-14 15:55:27
    http://img2.mukewang.com/62f8a97c0001bcbd00690069.jpg
    http://img4.mukewang.com/62f8a97c0001a31f01750175.jpg
    彩云小译 刚刚
    http://img.mukewang.com/62f8a97c00016f7700460047.jpg0
    http://img3.mukewang.com/62f8a97c00010a8700690069.jpg
    在一个作用域内,只允许一个活跃的可变引用。活跃:真正被用来修改数据的可变引用,如果只是定义了,却没有使用或者当作只读引用使用,不算活跃。http://img1.mukewang.com/62f8a97c0001187102110212.jpg

领略Rust之美,挑战双高语言

带你以最高效的学习方式快速入门双高(高性能&高可靠)语言Rust

6474 学习 · 12 问题

查看课程