为什么 `tokio::main` 可以直接使用而无需任何导入?

3
我写了以下代码,它可以成功编译。
#[tokio::main]
async fn main() {

}

但是我很好奇为什么main的proc_macro可以直接使用,而不需要任何预导或显式的use语句呢?
1个回答

6
那是因为`tokio::main`是一个完整的路径,你可以用同样的方式使用`std::collections::HashMap`。
`use`语句只是将你使用的对象引入作用域,但是crate本身会被`cargo`自动引入作用域。
在早期版本的Rust中,你需要写`extern crate tokio;`等类似的代码,但这基本上已经过去了。
请注意,你仍然需要将`tokio`添加到你的`Cargo.toml`文件中。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接