错误:展示位置表达式语法是实验性的,可能会发生变化.(见问题#27779)

Gre*_*reg 3 rust

我正在关注Rust By Example并收到一个错误,我不知道如何解决:

fn main() {
    let x: f32 = 10.;

    if (x == 10) {
        println!("if");
    } else if (x > 10) && (x<-5) {
        println!("else if");
    } else {
        println!("else");
    }
}
Run Code Online (Sandbox Code Playgroud)

下面的编译错误看起来像是结果else if.如何执行两个条件检查else if,为什么它不起作用?

error: placement-in expression syntax is experimental and subject to change. (see issue #27779)
 --> src/main.rs:6:28
  |
6 |     } else if (x > 10) && (x<-5) {
  |                            ^^^^
Run Code Online (Sandbox Code Playgroud)

log*_*yth 6

因为您正在编写x<-5而不是x < -5使用空格,因此Rust将其<-视为放置运算符.在你的操作员周围放置空格通常是最好的,因为它修复了这个并且还提高了可读性.