Note
read_line
および~str
に関するこの質問の詳細は、Rustの1.0より前のバージョンに関連しています。unwrap
およびunwrap_or
に関する一般的な概念は引き続き重要です。
Rust for Rubyists つまり:
let mut reader = BufferedReader::new(io::stdin());
let input = reader.read_line().unwrap_or(~"nothing");
注
read_line
および~str
に関するこの回答の詳細は、Rustの1.0より前のバージョンに関するものです。unwrap
およびunwrap_or
に関する一般的な概念は引き続き重要です。
read_line
は失敗する可能性があるため、Option<~str>
を返します。値を取得するには、パターンマッチングまたはunwrapメソッドのいずれかを使用できます。
unwrap
とunwrap_or
の違いは、値がなければ(unwrap
)None
は失敗するが、unwrap_or
は指定されたデフォルト( "nothing")を返すことです。この場合)
注_
read_line
_および_~str
_に関するこの回答の詳細は、Rustの1.0より前のバージョンに関連しています。unwrap
および_unwrap_or
_に関する一般的な概念は引き続き重要です。
Rustには、これらのことを説明するAPIドキュメントがあります。
fn read_line(&mut self) -> Option<~str>
UTF-8エンコードされたUnicodeコードポイントのシーケンスとして解釈される入力の次の行を読み取ります。改行が検出されると、返された文字列に改行が含まれます。
…
[それから_
io_error
_条件を上げることについて何か。これは、条件が処理された場合にNone
を返す状況の1つです。そうでない場合は失敗し、何も返されません。]
また、すべてがリーダーで読み取られた場合、None
が返されます。
fn unwrap(self) -> T
オプションタイプから値を移動して返します。
主に、コピーせずにオプションタイプから文字列、ベクトル、一意のポインタを取得するのに役立ちます。
…
あれは、
Some(a).unwrap()
はa
を返しますNone.unwrap()
は失敗します
fn unwrap_or(self, def: T) -> T
含まれている値またはデフォルトを返します
あれは、
Some(a).unwrap_or(b)
はa
を返しますNone.unwrap_or(b)
はb
を返します