【问题标题】:Rust empty value for expression表达式的锈空值
【发布时间】:2016-07-23 15:16:02
【问题描述】:

为什么我使用这段代码在变量a 中得到一个空值? 另外,如果没有 {:?} 格式,这不会编译?

fn main() {
    let mut a = 5;
    let mut b = 6;
    let n = 7;
    let a = b = n;
    println!("{:?}", a);
}

【问题讨论】:

    标签: rust expression


    【解决方案1】:

    与 C 和其他一些语言不同,赋值表达式(此处为 b = n)在 Rust 中返回 ()

    另请注意,let a = ...; 实际上并没有改变a,而是创建一个新的a,它会影响前一个并分配()

    【讨论】:

      【解决方案2】:

      与其他语言(如 C)不同,赋值表达式不会计算赋值;分配总是评估为()

      【讨论】:

      • 但是 b 的值为 7,a 会发生什么?
      • 赋值表达式计算为()b = n 是一个赋值表达式。因此a的值为()
      猜你喜欢
      • 1970-01-01
      • 2013-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-09
      相关资源
      最近更新 更多