让数据=数据;更改可变性

时间:2019-02-27 18:38:24

标签: compilation rust immutability compiler-optimization ownership

有时候我很想写***

fn main() {

    // Initialize as mutable.
    let mut data = String::new();

    // ...
    data.push_str("data progressively built up");
    // ...

    // Move to immutable variable.
    let data = data; // *** this line.
    // From this point on, the data can only be read.

    // ...
    println!("read: {}", data);
    // ...

}
  • 这行有意义吗?
    • 我认为这意味着通过阴影进行的可变性更改。那是正确的吗?
  • 此行有什么区别吗?
    • ..在编译时?
      • 我想是的,因为禁止在此行之后进行任何可变借款。
    • ..在运行时?
      • 它真的被编译成一条额外的,无用的指令了吗?
      • 也许编译器可以从不变性假设中受益,以执行更积极的优化。这真的是真的吗?

简而言之:我应该写吗?

0 个答案:

没有答案