gpt4 book ai didi

Rust:将路径引入范围时使用 "self"

转载 作者:行者123 更新时间:2023-12-03 11:29:58 25 4
gpt4 key购买 nike

mod front_of_house {
pub mod hosting {
pub fn add_to_waitlist() {}
}
}

use self::front_of_house::hosting;

pub fn eat_at_restaurant() {
hosting::add_to_waitlist();
hosting::add_to_waitlist();
hosting::add_to_waitlist();
}

代码来自 Rust Book .在这种情况下,如果使用相对路径,为什么还要使用 self ?我发现 use front_of_house::hosting在这里工作得很好。

所以,任何必要的理由来介绍 self这里?

最佳答案

use front_of_house::hosting 的结果取决于上下文。如果 crate 根目录包含 extern crate front_of_housefront_of_houseCargo.toml 中的依赖项, 这将引用 hosting在那个箱子里。但是,在您的情况下,有本地模块 front_of_house ,它优先于外部 crate。方便的是,它位于使用它的代码之前,因此很明显它是正在使用的实际模块。然而,在较大的文件中,模块的来源可能不明确,即是否存在与本地模块名称相同的依赖项。在这种情况下,额外的 self增加代码的清晰度,帮助您区分依赖项和本地模块。如果,在这种情况下,你想使用依赖,你会 use ::front_of_house::hosting ,它无条件地引用依赖关系,如果没有这样的名称则失败。

关于Rust:将路径引入范围时使用 "self",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62099719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com