有很多关于使用模块的Rust 文档,但我还没有找到一个包含多个模块的Cargo二进制文件的示例,其中一个模块使用另一个模块.我的例子在src文件夹中有三个文件.模块a和b处于同一级别.一个不是另一个的子模块.
main.rs:
mod a;
fn main() {
println!("Hello, world!");
a::a();
}
Run Code Online (Sandbox Code Playgroud)
a.rs:
pub fn a() {
println!("A");
b::b();
}
Run Code Online (Sandbox Code Playgroud)
和b.rs:
pub fn b() {
println!("B");
}
Run Code Online (Sandbox Code Playgroud)
我试过的变化use b
和mod b
内部a.rs,但我不能得到这个代码进行编译.use b
例如,如果我尝试使用,则会收到以下错误:
--> src/a.rs:1:5
|
1 | use b;
| ^ no `b` in the root. Did you mean to use `a`?
Run Code Online (Sandbox Code Playgroud)
让Rust认识到我想在货物应用程序中使用模块a中的模块b的正确方法是什么?
Mas*_*ara 16
你必须包括b.rs
某个地方,通常是mod b;
.如果b
是a
(而不是兄弟姐妹a
)的孩子,有两种方法可以做到这一点:
a.rs
为a/mod.rs
和b.rs
成a/b.rs
.然后你就可以mod b;
了a/mod.rs
.#[path = "b.rs"] mod b;
在a.rs
不重命名源的情况下使用.如果b
打算成为a
(而不是孩子a
)的兄弟,你可以mod b;
进入main.rs
,然后use crate::b;
进入a.rs
.
对于Rust版本1.33的同级方法,我无法接受。
取而代之的是,我使用了兄弟姐妹mod:
use crate::b;
Run Code Online (Sandbox Code Playgroud)
编辑:拼写错误的词条箱
归档时间: |
|
查看次数: |
3443 次 |
最近记录: |