我真的無法找到如何從一個文件(模塊)到另一個文件(模塊)包含(或導入,注入或無效)功能。鏽的基本進口(包括)
這裏是例子。
我開始
cd ~/projects
cargo new proj --bin
cd proj
tree
# output
.
|
-- Cargo.toml
-- src
|
-- main.rs
一個新的項目,然後我修改main.rs
,並用下面的代碼創建一個新的文件a.rs
(在src
目錄內):
// main.rs
fn main() { println!("{}", a::foo()); }
// a.rs
pub fn foo() -> int { 42i }
我跑項目,cargo run
我有兩個錯誤:
- src/main.rs:2:20:2:26錯誤:未能解決。使用未聲明的模塊
a
- src/main.rs:2:20:2:26錯誤:未解決的名稱
a::foo
。
現在看起來很明顯,我只需要以某種方式導入a
。
我想下面的東西作爲第一行添加到main.rs
use a;
- >錯誤:無法解析的進口(?也許你的意思a::*
)use a::*;
- >錯誤:水珠import語句是實驗性可能是越野車use a::foo;
- > error:unresolved importa::foo
。也許缺少extern crate a
?extern crate a; use a::foo;
- >錯誤:a
extern crate proj; use proj::a::foo;
找不到箱子 - >錯誤:無法proj
發現箱子我已經閱讀the guide at rust-lang 但還是無法弄清楚如何做進口。
那麼,什麼時候「外部箱子」是必要的?我認爲每個Rust文件都是一個單獨的箱子(編譯單元)。 – voithos 2014-10-06 21:34:35
@voithos您的main.rs或lib.rs以及它通過'mod'指令遞歸反轉的所有文件將被編譯爲一個箱子。這是彙編的單位。 – Levans 2014-10-06 22:03:56
',但模塊系統的任何更改都將被拒絕爲「太混亂」。現有模塊系統「太混亂」。 – Qix 2015-04-23 03:32:47