Rust 什么是包装、板条箱和模块?
我已经读过了,但我仍然不太理解层次结构。我知道什么是板条箱,包装中至少应有一个板条箱:最多1个图书馆板条箱和0个或更多二进制板条箱 首先:假设我想在包中同时使用Rust 什么是包装、板条箱和模块?,rust,rust-cargo,Rust,Rust Cargo,我已经读过了,但我仍然不太理解层次结构。我知道什么是板条箱,包装中至少应有一个板条箱:最多1个图书馆板条箱和0个或更多二进制板条箱 首先:假设我想在包中同时使用lib.rs和main.rs板条箱。如何从main.rs中的lib.rs访问/调用函数 第二:当我用cargo new--lib lib library name创建新库时,它会用该名称创建目录并在那里创建一堆文件,我在src/main.rs中找到的从该库调用函数的唯一方法是: modsome\u库; 使用板条箱::库名称::库名称::f
lib.rs
和main.rs
板条箱。如何从main.rs
中的lib.rs
访问/调用函数
第二:当我用cargo new--lib lib library name
创建新库时,它会用该名称创建目录并在那里创建一堆文件,我在src/main.rs
中找到的从该库调用函数的唯一方法是:
modsome\u库;
使用板条箱::库名称::库名称::foo;
fn main(){
foo();
}
//文件名:src/library\u name.rs
发布模块库_name;//我真的不明白
//文件名:src/library\u name/library\u name.rs
pub fn foo(){
// ...
}
其中我具有以下层次结构:
- package_name
- src
- library_name
- src
- lib.rs
- Cargo.toml
- library_name.rs
- library_name.rs
- main.rs
- Cargo.toml
src/library\u name.rs
是否需要与src/library\u name
库同名?我真的很困惑。在最简单的情况下,模块是一个单独的.rs
文件。但是,如果需要嵌套模块,可以创建一个目录,然后添加一个mod.rs
文件,将该目录声明为模块。您可以使用use…
从同一目录的模块调用代码。您可以使用use super::…
从上层目录调用代码。您可以使用use outermodule::innermodule::…
从另一个模块的模块调用代码,但只有当outermodule
将innermodule
声明为公共时,它才会起作用(这是通过mod.rs中的pub mod innermodule;
完成的,如果您不想弄乱文件,只有这样您才能使用mod module1{…}mod module2{…}在单个文件中定义多个模块。)
。调用模块的逻辑适用于所有相同的情况,最简单的情况是模块是一个单独的.rs
文件。但是如果需要嵌套模块,可以创建一个目录,并添加一个mod.rs
文件,将目录声明为模块。可以使用use…
从同一目录的模块调用代码。您可以使用use super::…
从上层目录调用代码。您可以使用use outermodule::innermodule::…
从另一个模块的模块调用代码,但只有当outermodule
将innermodule
声明为公共时,它才会起作用(这是通过mod.rs中的pub mod innermodule;
完成的,如果您不想弄乱文件,只有这样您才能使用mod module1{…}mod module2{…}
在一个文件中定义多个模块。调用模块的逻辑同样适用