我有这个:
let mut a = 6; //1
let b = &a; //2
let c = &mut a; //3
println!("{b}") //4
关于rust-ownerip和借用规则,我知道在编译过程中,如果有多个借用,其中一个涉及可变性,则会标记错误。
在上面的代码中,在第3行,在第2行的不可变借用之后有一个可变借用,所以根据rust规则,这是不允许的。
我在几个IDE中有这段代码,比如vsc、rustrover等。这些IDE标记任何编译错误,比如缺少“;”。
但是第3行的错误是在我运行程序(货物运行)时检测到的,但不是编译错误。
这不应该是一个编译错误吗?