我有一个非常简单的cat函数,用Rust 1.0 alpha编写。
use std::io;
fn main(){
let mut reader = io::stdin();
loop {
let input = reader.read_line().ok().expect("Failed to read line");
print!("{}", input);
}
}
编译时,我收到以下警告:
bindings.rs:5:26: 5:35 warning: use of unstable item, #[warn(unstable)] on by default
bindings.rs:5 let mut reader = io::stdin();
^~~~~~~~~
bindings.rs:6:28: 6:39 warning: use of unstable item, #[warn(unstable)] on by default
bindings.rs:6 let input = reader.read_line().ok().expect("Failed to read line");
^~~~~~~~~~~
有没有办法补救这些警告?
答案 0 :(得分:14)
对于1.0版本,Rust希望提供非常有力的保证,确保语言和标准库的哪些功能可用于语言的整个生命周期。这不是一件容易的事!
新的,未经测试的或刚刚未完全烹饪的功能将使用稳定属性标记,并won't be able to use unstable features in the beta or release。您只能在夜间构建中使用它们。
在 alpha 期间,它们只是警告。如果您需要使用alpha中的某个功能并将其标记为unstable
,那么您需要确保它在测试版之前变得稳定(或者您找到了替代解决方案)!
在这种情况下,整个IO子系统正在进行最后一分钟的更改,因此它被标记为不稳定。
修改1
当PR 21543登陆时,当前称为std::io
的世界将被重命名为std::old_io
。新编写的代码将进入std::io
,旧版本将被弃用。