为了账号安全,请及时绑定邮箱和手机立即绑定

引用赋值变量报错

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 回答

http://img1.sycdn.imooc.com//62f8a97c0001bcbd00690069.jpg
http://img1.sycdn.imooc.com//62f8a97c0001a31f01750175.jpg
彩云小译 刚刚
http://img1.sycdn.imooc.com//62f8a97c00016f7700460047.jpg0
http://img1.sycdn.imooc.com//62f8a97c00010a8700690069.jpg
在一个作用域内,只允许一个活跃的可变引用。活跃:真正被用来修改数据的可变引用,如果只是定义了,却没有使用或者当作只读引用使用,不算活跃。http://img1.sycdn.imooc.com//62f8a97c0001187102110212.jpg
0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
领略Rust之美,挑战双高语言
  • 参与学习       6180    人
  • 解答问题       11    个

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

进入课程

引用赋值变量报错

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信