Rust 中的#[warn(unstable)] 是什么意思?
What is #[warn(unstable)] about in Rust?
我有一个用 Rust 1.0 alpha 编写的非常简单的 cat 函数。
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");
^~~~~~~~~~~
有没有办法补救这些警告?
对于 1.0 版本,Rust 希望提供关于语言和标准库的哪些功能在语言的整个生命周期 中可用的非常有力的保证。这不是一件容易的事!
新的、未测试的或未完全煮熟的功能将标有稳定性属性,而您 won't be able to use unstable features in the beta or release。您将只能在夜间构建中使用它们。
然而,在 alpha 期间,它们只是警告。如果您需要使用 alpha 中的某个功能并且它被标记为 unstable
,那么您将需要确保它在 beta 之前变得稳定(或者您找到替代解决方案)!
在这种情况下,整个 IO 子系统正在进行最后一刻的更改,因此它被标记为不稳定。
编辑 1
当PR 21543登陆时,当前称为std::io
的世界将更名为std::old_io
。新编写的代码将进入 std::io
,旧版本将被弃用。
我有一个用 Rust 1.0 alpha 编写的非常简单的 cat 函数。
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");
^~~~~~~~~~~
有没有办法补救这些警告?
对于 1.0 版本,Rust 希望提供关于语言和标准库的哪些功能在语言的整个生命周期 中可用的非常有力的保证。这不是一件容易的事!
新的、未测试的或未完全煮熟的功能将标有稳定性属性,而您 won't be able to use unstable features in the beta or release。您将只能在夜间构建中使用它们。
然而,在 alpha 期间,它们只是警告。如果您需要使用 alpha 中的某个功能并且它被标记为 unstable
,那么您将需要确保它在 beta 之前变得稳定(或者您找到替代解决方案)!
在这种情况下,整个 IO 子系统正在进行最后一刻的更改,因此它被标记为不稳定。
编辑 1
当PR 21543登陆时,当前称为std::io
的世界将更名为std::old_io
。新编写的代码将进入 std::io
,旧版本将被弃用。