为什么 actix_rt 可以直接在代码中使用,即使它没有被声明?
Why can actix_rt be used directly in the code, even if it wasn't declared?
我只是在Cargo.toml中添加了actix_rt,并没有在第一行用use关键字声明。然后我可以在代码中使用它。我知道一些常用函数包含在 Rust 的前奏中,但我不知道第 3 方库可以做一些事情。我可以创建一个这样的板条箱吗?
谁能告诉我原因,或者给我一些提示或一些参考链接?非常感谢。
[dependencies]
actix-rt = "0.2.5"
actix-web = "1.0.8"
use std::io;
fn main() -> io::Result<()> {
let sys = actix_rt::System::new("basic");
sys.run()
}
在 Rust 2018 版中,extern crate
is no longer required。将 crate 作为依赖项允许它作为模块访问。您无需执行任何操作即可像这样访问您的箱子。
这与标准库序曲有很大不同,后者use
隐含地包含序曲中的所有项目(with use std::prelude::v1::*;
)。使用 extern crate
或添加外部 crate 作为依赖项,必须限定类型、函数和特征。在您的示例中,您必须使用 actix_rt::System::new("basic")
而不是简单地 System::new("basic")
。将此与 std::prelude::v1::Option
进行比较,后者可以用作没有任何前缀的 Option<T>
。
我只是在Cargo.toml中添加了actix_rt,并没有在第一行用use关键字声明。然后我可以在代码中使用它。我知道一些常用函数包含在 Rust 的前奏中,但我不知道第 3 方库可以做一些事情。我可以创建一个这样的板条箱吗?
谁能告诉我原因,或者给我一些提示或一些参考链接?非常感谢。
[dependencies]
actix-rt = "0.2.5"
actix-web = "1.0.8"
use std::io;
fn main() -> io::Result<()> {
let sys = actix_rt::System::new("basic");
sys.run()
}
在 Rust 2018 版中,extern crate
is no longer required。将 crate 作为依赖项允许它作为模块访问。您无需执行任何操作即可像这样访问您的箱子。
这与标准库序曲有很大不同,后者use
隐含地包含序曲中的所有项目(with use std::prelude::v1::*;
)。使用 extern crate
或添加外部 crate 作为依赖项,必须限定类型、函数和特征。在您的示例中,您必须使用 actix_rt::System::new("basic")
而不是简单地 System::new("basic")
。将此与 std::prelude::v1::Option
进行比较,后者可以用作没有任何前缀的 Option<T>
。