1
我目前在學Rust。我剛剛掌握了借用系統,但我不知道模塊系統是如何工作的。Rust中的導入/模塊系統如何工作?
要導入一個外部模塊,我必須寫入extern crate sdl2;
。但是如果我想導入一個非外部箱子呢?
我知道我可以定義使用mod
比如模塊:
mod foo {
fn bar(length: i32) -> Vec<i32> {
let mut list = vec![];
for i in 0..length + 1 {
if list.len() > 1 {
list.push(&list[-1] + &list[-2]);
} else {
list.push(1);
}
}
list
}
}
而且與foo::
同一文件中使用它,但我怎麼可以使用函數/模塊從其他文件?
只是爲了詳情緣故想象這樣設置:
.
|-- Cargo.lock
|-- Cargo.toml
`-- src
|-- foo.rs
`-- main.rs
所以在的src/foo.rs我:
fn bar(length: i32) -> Vec<i32> {
let mut list = vec![];
for i in 0..length + 1 {
if list.len() > 1 {
list.push(&list[-1] + &list[-2]);
} else {
list.push(1);
}
}
list
}
而且我想在src/main.rs
使用它。當我嘗試一個普通use foo::bar
,我得到:
|
1 | use foo::bar;
| ^^^^^^^^ Maybe a missing `extern crate foo;`?
時,把裏面mod foo {...}
功能我得到同樣的錯誤。
如果有任何關於此主題的文章,請給我一個鏈接,因爲我什麼也沒有得到Rust書。
如何查看[* Rust編程語言*,第二版](https://doc.rust-lang.org/beta/book/second-edition/)?你還沒有告訴我們你從書中不能理解的內容,那麼是什麼阻止了你給予你已經不明白的相同內容的答案呢? – Shepmaster
此外,本書的第一版有關於[多個文件箱]的部分(https://doc.rust-lang.org/beta/book/first-edition/crates-and-modules.html#multiple-file - 討論你的確切情況。 – Shepmaster
*非外部箱子* - 沒有這樣的東西存在。 – Shepmaster