为什么即使没有声明,actix_rt也可以直接在代码中使用?

问题描述 投票:0回答:1

我只是在Cargo.toml中添加了actix_rt,没有在第一行使用use关键字声明它。然后,我可以在代码中使用它。我知道一些常用的功能包含在Rust的前奏中,但是我不知道3rd party库可以做些什么。我可以创建这样的箱子吗?

任何人都可以告诉我为什么,或者给我一些提示或参考链接?我会很感激的。

[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 rust-actix
1个回答
0
投票

在Rust 2018版中,extern crate is no longer required。将板条箱作为依赖项可以将其作为模块进行访问。您无需采取任何措施即可像这样访问您的板条箱。

这与标准库前奏非常不同,前奏隐含use隐含前奏中的所有项目(with use std::prelude::v1::*;)。使用use std::prelude::v1::*;或添加外部包装箱作为依赖项时,必须限定类型,功能和特性。在您的示例中,您必须使用extern crate而不是简单地使用actix_rt::System::new("basic")。将此与System::new("basic")进行比较,后者可以用作没有任何前缀的std::prelude::v1::Option

© www.soinside.com 2019 - 2024. All rights reserved.