MST

星途 面试题库

面试题:Rust模块系统中如何实现跨模块函数调用

在Rust中,假设你有一个项目,包含多个模块。其中一个模块定义了一个函数`calculate_sum`,你需要在另一个模块中调用这个函数。请描述实现这一跨模块调用的步骤,并给出简单的代码示例。
27.5万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
  1. 步骤

    • 步骤一:模块定义与组织
      • 在Rust中,模块可以通过mod关键字定义。假设项目结构如下:
        src/
        ├── main.rs
        └── utils.rs
        
      • utils.rs中定义calculate_sum函数:
        // utils.rs
        pub fn calculate_sum(a: i32, b: i32) -> i32 {
            a + b
        }
        
      • 这里pub关键字使得calculate_sum函数可以被其他模块访问。
    • 步骤二:模块引入
      • 在调用calculate_sum函数的模块中,需要引入定义该函数的模块。如果在main.rs中调用,在main.rs中添加如下代码:
        mod utils;
        
      • 这行代码告诉Rust编译器utils模块的存在,并会查找utils.rs文件(如果是在同一目录下)。
    • 步骤三:函数调用
      • 引入模块后,就可以调用calculate_sum函数。在main.rs中:
        mod utils;
        
        fn main() {
            let result = utils::calculate_sum(2, 3);
            println!("The sum is: {}", result);
        }
        
      • 这里使用utils::calculate_sum来调用utils模块中的calculate_sum函数。
  2. 完整代码示例

    • utils.rs
      pub fn calculate_sum(a: i32, b: i32) -> i32 {
          a + b
      }
      
    • main.rs
      mod utils;
      
      fn main() {
          let result = utils::calculate_sum(2, 3);
          println!("The sum is: {}", result);
      }