main.rs 里使用include!宏包含了另一个文件foo.rs,这样另一个文件就会被直接包含进来,这个在实现一个很大的impl的时候比较有用,比如这个例子里struct Foo的impl被放在了main.rs和foo.rs里
#[macro_use]
use std::*;
include!("foo.rs");
fn main() {
let f = Foo;
f.print1();
f.print2();
}
struct Foo;
impl Foo {
fn print1(&self){
println!("print1");
}
}
foo.rs
impl Foo {
fn print2(&self){
println!("print2");
}
}
运行结果:
print1
print2
注:foo.rs名字随便取的,只要与include!后面的名字一样就可以了。另外foo.rs并不一定要在同一个目录,只要路径完整即可
另外提示下,同一个type的impl可以分开写,但要放在同一个文件里,否则就要用上面的include!宏了
比如这个就把impl分开写
fn main(){
let f = Foo;
f.print1();
f.print2();
}
struct Foo;
impl Foo{
fn print1(&self){
println!("print1");
}
}
impl Foo{
fn print2(&self){
println!("print2");
}
}
本文介绍如何在Rust中使用include!宏将一个类型的实作分散在多个文件中。通过一个具体例子展示了如何将structFoo的方法分散在main.rs和foo.rs两个文件内,并确保这些方法能够正确调用。
4万+

被折叠的 条评论
为什么被折叠?



