函数导入的冗余

Mat*_*ens 2 redundancy rust rust-cargo

我认为我的导入有一些冗余,但我真的无法找到另一种方法来做到这一点

主程序.rs

mod lib; 
use lib::calc::med_calc;


fn main() {
    let mut numbers = vec![1,21,22,4,2];
    med_calc(& mut numbers)
}
Run Code Online (Sandbox Code Playgroud)

对我来说,将 lib.rs 声明为模块似乎很奇怪,只有这样我才能使用其中的结构/函数。因为我已经在 lib.rs 本身中将它们声明为模块和公共。

库文件

pub mod calc {
    pub fn med_calc(vector: & mut Vec<u8>){
        vector.sort();
        println!("{}", vector[vector.len()/2])
    }
}
Run Code Online (Sandbox Code Playgroud)

文件树(用于货物):

src -
    |- main.rs
    |- lib.rs
Run Code Online (Sandbox Code Playgroud)

Fin*_*nis 8

当项目中同时存在lib.rs和文件时,该文件会创建一个库 crate,可以通过 crate 二进制源文件中的 crate 名称进行访问(如和)。main.rslib.rsmain.rsbin/*.rs

例如,如果板条箱名为rust_tmp,那么您可以执行以下操作:

main.rs

use rust_tmp::calc::med_calc;

fn main() {
    let mut numbers = vec![1, 21, 22, 4, 2];
    med_calc(&mut numbers)
}
Run Code Online (Sandbox Code Playgroud)

不需要一个mod lib;. 实际上,a与它的用途mod lib;相反。lib.rs