注意此问题中
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
仍然相关的一般概念。
我在阅读Rust for Rubyists时遇到过它,即:
let mut reader = BufferedReader::new(io::stdin());
let input = reader.read_line().unwrap_or(~"nothing");
Answers:
注意:此答案中的细节与Rust的1.0之前版本有关,
read_line
并~str
与之有关。关于unwrap
并且unwrap_or
仍然相关的一般概念。
Rust有解释这些内容的API文档。
fn read_line(&mut self) -> Option<~str>
读取下一行输入,将其解释为一系列UTF-8编码的unicode码点。如果遇到换行符,则该换行符将包含在返回的字符串中。
…
[然后关于提高
io_error
条件,这是一种情况,None
如果条件得到处理,它将返回。如果不是,它将失败,因此您将永远无法收回任何东西。]
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