是"让x = ~10;" 在Rust中过时了吗?

Nan*_*iao 3 rust

我阅读了本教程并尝试了以下Rust代码:

fn main() {
    let x = ~10;
    println!("{:d}", *x);
}
Run Code Online (Sandbox Code Playgroud)

但编译器抱怨:

rustc 1.16.0 (30cf806ef 2017-03-10)
error: expected expression, found `~`
 --> <anon>:2:13
  |
2 |     let x = ~10;
  |             ^

error: unknown format trait `d`
 --> <anon>:3:22
  |
3 |     println!("{:d}", *x);
  |                      ^^
Run Code Online (Sandbox Code Playgroud)

let x = ~10;过时了吗?

She*_*ter 8

这是非常过时的.Rust 1.0于2015-05-15发布.在此之前几个月删除了此语法.这意味着您的教程很长时间没有更新; 事实上,该文件最后更新时间是2014-01-28!不是一个好兆头.

您的代码的非过时版本:

fn main() {
    let x = Box::new(10);
    println!("{}", x);
}
Run Code Online (Sandbox Code Playgroud)
  1. sigil ~被特定的数据结构所取代.在这种情况下,Box.
  2. 格式说明符:d不再存在.只需使用Display格式化程序{}.
  3. 没有必要取消引用盒装号码.

使用官方消息来源,而不是一些"已经过时"的参考: