gpt4 book ai didi

Rust 重复使用语句

转载 作者:行者123 更新时间:2023-12-05 02:31:17 25 4
gpt4 key购买 nike

首先,我是 Rust 的初学者,我开始使用代码分析器 (Mega-Linter),它让我意识到我在我的子模块中重复了多少相同的“使用”语句。这是我的源文件树的样子:

src/
- lib.rs
- ui/
- mod.rs
- ui_mod_1.rs
- ui_mod_2.rs

然后我意识到我的 ui_mod_1.rs 和 ui_mod_2.rs 有几乎相同的一堆“使用”语句:

// ui_mod_1.rs
use tui::{
layout::{Alignment, Constraint, Direction, Layout, Rect},
style::{Color, Modifier, Style},
};

// rest of the file
// ui_mod_2.rs
use tui::{
layout::{Alignment, Constraint, Direction, Layout, Rect},
style::{Color, Modifier, Style},
};

// rest of the file
// mod.rs
pub mod ui_mod_1;
pub mod ui_mod_2;
// lib.rs
pub mod ui;

ui_mod_1.rs 和 ui_mod_2.rs 背后的想法是按主题拆分“ui 实用程序”功能,以避免拥有包含所有这些功能的巨大源文件。一个可能的解决方案是合并这两个文件,但这不是我想要做的。

我尝试的是移动 mod.rs 甚至 lib.rs 中两个子模块共有的“使用”,如下所示:

// mod.rs
pub use tui::{
layout::{Alignment, Constraint, Direction, Layout, Rect},
style::{Color, Modifier, Style},
};

pub mod ui_mod_1;
pub mod ui_mod_2;

但这行不通。经过一些研究,我仍然没有找到如何做到这一点。是否有一种优雅的方式来为所有子模块重新组合“使用”语句?

最佳答案

您可以创建一个包含 use 语句的 ui_prelude 模块作为 pub use,然后在您的模块:

// ui_prelude.rs
pub use tui::{
layout::{Alignment, Constraint, Direction, Layout, Rect},
style::{Color, Modifier, Style},
};
// ui_mod_1.rs and ui_mod_2.rs
use super::ui_prelude::*;
// mod.rs
mod ui_prelude.
pub mod ui_mod_1;
pub mod ui_mod_2;

关于Rust 重复使用语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71586594/

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