Mat*_* M. 20
在Rust中,为了使用符号,您必须:
use指令在当前范围中导入符号:use std::mem;std::mem::replace但是,如果没有这样的动作,可以使用一些非常少的符号:Option或者Copy例如!
这是由于Rust的前奏.
许多特征,类型和功能被认为是如此频繁使用,以至于不要求它们的使用需要每次都明确地输入必要的符号.这是通过编译器采取的两个隐式操作来实现的:
extern crate std; use std::prelude::v1::*;(现在)std::prelude::v1只是一个常规模块,它使用pub use ...语法重新导出那些常用符号.它的确切内容可以在这里找到.
许多其他库,甚至标准库的子组件也定义了一个prelude模块,您可以使用相同的glob导入语法导入该模块:use xxx::prelude::*;.std::prelude然而,与编译器不同,它们不是特殊的,因此需要显式导入.
编译器对前奏的确切内容是不可知的,因此如果std要用自己的内容替换crate(例如,在嵌入式开发中),则可以决定进入其std::prelude::v1模块的内容.