关于Rust模块,我有些不了解。
main.rs
中使用单个文件有了一个main
和另一个文件,我就知道了如何使用它们。这很简单。
main.rs
mod other;
fn main() {
let whatever = other::Whatever {
foo: 32,
};
println!("Whatever is {}", whatever.foo);
}
other.rs
pub struct Whatever {
pub foo: u32,
}
这很好。
main.rs
以外的其他地方使用它会如何?当在另一个模块中使用另一个模块时,我没有得到。
这对我来说听起来不错,但是没有用。
main.rs
pub mod other;
pub mod alter;
fn main() {
let whatever = other::Whatever {
foo: 32,
};
alter::say(whatever);
}
other.rs
pub struct Whatever {
pub foo: u32,
}
alter.rs
mod other;
pub fn say(whatever: other::Whatever) {
println!("Whatever is {}", whatever.foo);
}
编译失败:
error[E0583]: file not found for module `other`
--> src/alter.rs:1:5
|
1 | mod other;
| ^^^^^
|
如何使用other
中的alter
?
我已经看过How to use one module from another module in a Rust cargo project?,但据我了解,它指的是模块及其子模块。
在这里,other
不是alter
的子模块(例如,您可以将other
作为应用程序范围的共享配置)。