为什么Rust中部分函数调用前会带有句点?
Rust方法调用句点问题解答
这是Rust的方法调用语法和链式调用的格式化风格,具体说明如下:
- 带
.的写法是Rust的标准方法调用规则:句点用于调用某个值上绑定的方法。你代码里的io::stdin()会返回一个std::io::Stdin类型的实例,.read_line(&mut guess)就是调用这个实例上的read_line方法,传入可变引用&mut guess存储用户输入内容。 - 换行前置
.的写法是链式调用的常用格式化约定:read_line方法执行完成后会返回Result类型的结果,这个类型本身实现了expect方法,所以可以直接在上一步的返回值上继续调用方法,不需要额外声明变量存储中间结果。
你完全可以把这部分代码合并成一行,功能完全一致:
io::stdin().read_line(&mut guess).expect("Failed to read line");
拆分成多行且把句点放在新行开头,只是为了提升代码可读性,清晰展示每一步的调用逻辑,这也是Rust官方格式化工具rustfmt的默认处理风格。
内容的提问来源于stack exchange,提问作者petermayotte
相关产品推荐
相关产品推荐

