面试题答案
一键面试- 设置模块间可见性:
- 在Rust中,默认情况下,模块内的项(函数、结构体等)是私有的。要让模块B能够调用模块A中依赖模块C的函数,需要合理设置可见性。
- 首先,在模块A中,将依赖模块C的函数设置为
pub
,使其对外部模块可见。同时,如果该函数依赖模块C中的某些项,这些项也需要有合适的可见性。假设模块C中的相关项也需要被模块A中的函数使用,它们也应设置为pub
。 - 模块A和模块B之间的引用关系,需要确保模块B能够找到模块A。通常在
main.rs
或lib.rs
中通过mod
关键字声明模块层次结构。
- 代码结构框架:
- 假设项目结构如下:
src/ main.rs mod_a.rs mod_b.rs mod_c.rs
mod_c.rs
:// 假设这里有模块C的实现,例如一个函数 pub fn c_function() { println!("This is c_function in mod_c"); }
mod_a.rs
:mod mod_c; pub fn a_function() { mod_c::c_function(); println!("This is a_function in mod_a"); }
mod_b.rs
:mod mod_a; pub fn b_function() { mod_a::a_function(); println!("This is b_function in mod_b"); }
main.rs
:mod mod_a; mod mod_b; mod mod_c; fn main() { mod_b::b_function(); }
- 假设项目结构如下:
这样设置后,模块B能够顺利调用模块A中的函数,并且通过合理的模块组织和可见性设置,代码结构清晰,同时由于Rust的编译优化机制,在性能上也能保证较好的表现。