MST

星途 面试题库

面试题:Rust函数别名在复杂模块结构中的应用

假设有一个具有多层嵌套模块结构的Rust项目,顶层模块为`outer`,中间层模块为`middle`,底层模块为`inner`。在`inner`模块中有一个函数`original_function`,现在要求在`outer`模块通过函数别名导出该函数,同时保证模块的封装性和安全性。请描述实现思路并给出关键代码片段。
43.2万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
  1. 实现思路
    • 在Rust中,通过pub use语句可以实现将内部模块的函数导出到外层模块,同时保持模块的封装性。
    • 首先,需要确保inner模块的original_functionpub(公开的),这样才能被外层模块访问。
    • 然后在outer模块中使用pub use语句为inner::original_function创建别名,以便从outer模块外部可以直接访问该函数。
  2. 关键代码片段
    • inner.rs
// inner模块定义original_function函数并使其公开
pub fn original_function() {
    println!("This is the original function in inner module.");
}
  • middle.rs
// 这里假设middle模块不做任何额外处理,仅包含对inner模块的引用
mod inner;
  • outer.rs
mod middle;

// 为inner::original_function创建别名并导出
pub use self::middle::inner::original_function as exported_function;
  • main.rs
mod outer;

fn main() {
    outer::exported_function();
}