2015-01-10 10 views
13

私は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

これはあなたのコードによるものです。 :-) – Shepmaster

+1

これは潜在的な廃止予定の警告ですが、置き換えがまだ実装されていない場合に発生します。どのように私はそのような警告をスケルチしますか? – dhardy

+7

私の質問に答えるには: '#![allow(unstable)]'がトリックです。 – dhardy

答えて

14

1.0のリリースでは、の全生涯ので使用できる言語と標準ライブラリの機能について、Rustは非常に強力な保証を提供したいと考えています。これは簡単な出来事ではありません!

新しい、テストされていない、または完全には完全にクックされていない機能には、安定性の属性と、won't be able to use unstable features in the beta or releaseとマークされます。あなたは夜間のビルドでのみそれらを使用することができます。

ただし、アルファベットの間は、単に警告です。アルファの機能を使用する必要があり、unstableというマークが付いている場合は、ベータ版の前に安定している(または別の解決策を見つける)必要があります。

この場合、IOサブシステム全体が最新の変更を受けているため、不安定とマークされています。 PR 21543ランドは、std::ioとして知られている現在の世界はstd::old_ioと改名されます

編集1

。新しく書かれたコードはstd::ioに入り、古いバージョンは廃止される予定です。

+0

IOのロードマップはどこにありますか?多分錆びたレポで? – wegry

+6

私が知っているのは、β安定化メタボッグ(https://github.com/rust-lang/rust/issues/20761)と[IO改革RFC](https://github.com/rust -lang/rfcs/pull/517 /) – Shepmaster

関連する問題