【发布时间】:2023-02-06 12:14:15
【问题描述】:
这个我看不懂
为什么 let co = 0; co += &1; 上的编译器错误不能借用 co 作为可变的
但是let co = 0; co += 1; 上的错误不能将两次赋值给不可变变量co?
为什么要借用co?
我希望 co 不会被借用
【问题讨论】:
标签: rust
这个我看不懂
为什么 let co = 0; co += &1; 上的编译器错误不能借用 co 作为可变的
但是let co = 0; co += 1; 上的错误不能将两次赋值给不可变变量co?
为什么要借用co?
我希望 co 不会被借用
【问题讨论】:
标签: rust
有趣的是,这两个示例显示了如此不同的错误消息,但意义不大,因为它们都基于相同的基本原则出错:co 未标记为可变,因此您不能使用 += 对其进行变异。
后一条错误消息看起来更专业,因此希望通过直接解决分配问题来提供更多帮助。前一个错误消息似乎是更普遍的“不能借用 _ 作为可变”,应用更广泛。
为什么
co是借来的?我希望co不会被借用。
+=的实现是通过AddAssign特性完成的,它需要接受左侧作为可变引用才能对其进行变异。这就是发生借用的原因,但错误当然表明无法创建可变借用,因为co不是可变的。
【讨论】: