"let x = ~10;"在Rust中已经过时了吗?

3
我阅读了这个教程并尝试了下面这段Rust代码:

教程


fn main() {
    let x = ~10;
    println!("{:d}", *x);
}

但是编译器抱怨:
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);
  |                      ^^

let x = ~10;已经过时了吗?


2
是的。公正起见,这个已经一段时间被移除了:https://github.com/rust-lang/rfcs/pull/59。 - Alec
1个回答

8

这个代码非常过时。Rust 1.0发布于2015-05-15,而这种语法在那之前的几个月就被移除了。这意味着你的教程已经很久没有更新了;事实上,该文件最后更新于2014-01-28!这不是一个好的迹象。

您应该使用未过时的代码:

fn main() {
    let x = Box::new(10);
    println!("{}", x);
}
  1. 波浪符号~已被具体的数据结构所替代。在这种情况下,使用Box
  2. 格式说明符:d不再存在。只需使用Display格式化程序{}
  3. 没有必要解引用装箱的数字。

请使用官方来源而非一些“已经过时”的参考资料:


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接