簡體   English   中英

如何在Rust中的模塊和文件中定義循環結構?

[英]How do I define cyclical structs across modules and files in Rust?

當我寫作

struct A { b : Option<B> }
struct B { a : Option<A> }

它匯編。

我如何在模塊和文件之間拆分?

當我嘗試

// 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

你被不正確的mod使用所mod

mod 定義了一個模塊。

use導入已定義的模塊。

你應該使用的是像你的lib.rsmod.rs或任何包含mod a; mod b; ,然后,在a.rsuse b::B; ,在b.rsuse a::A

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM