【问题标题】:Rust borrowing when adding to a reference?添加到引用时生锈借用?
【发布时间】:2023-02-06 12:14:15
【问题描述】:

这个我看不懂

为什么 let co = 0; co += &1; 上的编译器错误不能借用 co 作为可变的

但是let co = 0; co += 1; 上的错误不能将两次赋值给不可变变量co

为什么要借用co?

我希望 co 不会被借用

【问题讨论】:

    标签: rust


    【解决方案1】:

    有趣的是,这两个示例显示了如此不同的错误消息,但意义不大,因为它们都基于相同的基本原则出错:co 未标记为可变,因此您不能使用 += 对其进行变异。

    后一条错误消息看起来更专业,因此希望通过直接解决分配问题来提供更多帮助。前一个错误消息似乎是更普遍的“不能借用 _ 作为可变”,应用更广泛。

    为什么co是借来的?我希望co不会被借用。

    += 的实现是通过 AddAssign 特性完成的,它需要接受左侧作为可变引用才能对其进行变异。这就是发生借用的原因,但错误当然表明无法创建可变借用,因为 co 不是可变的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-21
      • 1970-01-01
      • 1970-01-01
      • 2017-03-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多