您可以通过 2 种不同的方式解决此问题:
1 ) 使用模块 2 ) 使用库
使用模块
只需在src目录中的 main.rs 旁边创建一个文件并将其命名为name1.rs
name1.rs 看起来像:
//no need to specify "pub mod name1;" explicitly
pub fn name(a: i32) -> i32 {
println!("from diff file {}", a);
a * a
}
main.rs 看起来像:
//name of the second file will be treated as module here
pub mod name1;
fn main() {
println!("{}", name1::name(4));
}
使用库
a) 创建一个库,位于主项目目录(即 src 目录的父目录)并运行以下命令:
//In your case library name "file"
$ cargo new --lib file
此命令将创建另一个与您的主项目相同的名称文件目录。
b) 在主项目的 Cargo.toml 文件的依赖部分添加这个库(文件)
[package]
name = "test_project"
version = "0.1.0"
authors = ["mohammadrajabraza <mohammadrajabraza@gmail.com>"]
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
file = {path ="file"}
c) 使用上面的命令创建库后,将在 main_project>file(library)>src>lib.rs 下创建一个文件。
lib.rs 将如下所示:
pub fn name(a: i32) -> i32 {
println!("from diff file {}", a);
a * a
}
d) 最后你的 main.rs 将是:
//importing library in thescope
use file;
fn main() {
println!("{}", file::name(4));
}