写作时
struct A { b : Option<B> }
struct B { a : Option<A> }
它编译。</ p>
我如何在模块和文件之间拆分它?
当我尝试
时// a.rs
mod b;
struct A { b : Option<B> }
// b.rs
mod a;
struct B { a : Option<A> }
我得到了
$ rustc a.rs
a.rs:1:5: 1:6 error: circular modules: b.rs -> a.rs -> b.rs
a.rs:1 mod b;
^
这是我的环境
$ rustc --version
rustc 0.11-pre-nightly (168b2d1 2014-04-14 14:36:54 -0700)
host: x86_64-unknown-linux-gnu
$ uname -a
Linux 3.14.1-1-ARCH #1 SMP PREEMPT Mon Apr 14 20:40:47 CEST 2014 x86_64 GNU/Linux
答案 0 :(得分:3)
您被错误使用mod
抓住了。
mod
定义模块。
use
导入已定义的模块。
您应该使用的内容类似于lib.rs
或mod.rs
或包含mod a;
和mod b;
的内容,然后在a.rs
中use b::B;
1}},以及b.rs
,use a::A
。