gpt4 book ai didi

module - 我可以在不为每个文件引入模块的情况下将 crate 拆分为多个文件吗?

转载 作者:行者123 更新时间:2023-11-29 07:46:26 24 4
gpt4 key购买 nike

我找到的所有示例都会创建一个 lib.rs,然后在该文件中为每个文件创建 mod foo;mod bar; foo.rs, bar.rs

基本上我想要的是将我的箱子分成多个文件,但不必为每个文件引入大量模块。这对 Rust 来说是不可能的吗?

最佳答案

为了包含另一个源文件,它必须是自己的模块。

但是,这并不意味着您必须在您的 API 中公开这个事实。例如,假设您想将一些代码放入名为 hidden.rs 的文件中:

pub fn inside_hidden() {}

现在在您的 lib.rs 文件中,您可以公开此模块:

#![crate_type = "lib"]

pub mod hidden;

但是,如果您的库不需要子模块,最好将 hidden 模块保密,而不是将其内容作为顶级模块的成员公开:

#![crate_type = "lib"]

pub use hidden::inside_hidden;

mod hidden;

这样,用户就不会知道您有一个隐藏 子模块。他们会看到 inside_hidden,就像它是您的顶级模块的成员一样。

关于module - 我可以在不为每个文件引入模块的情况下将 crate 拆分为多个文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24070903/

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