Question
你好,我是悦创。
学员答疑:
- https://code.bornforthis.cn/?id=4e72084d-1eaf-44ed-8067-744671491574
- https://code.bornforthis.cn/?id=664ff169-41d6-409f-a05b-02ed42279759
问题代码:
// You can bring module paths into scopes and provide new names for them with
// the `use` and `as` keywords.#[allow(dead_code)]
mod delicious_snacks {// TODO: Add the following two `use` statements after fixing them.use self::fruits::PEAR as fruits;use self::veggies::CUCUMBER as veggies;pub mod fruits {pub const PEAR: &str = "Pear";pub const APPLE: &str = "Apple";}pub mod veggies {pub const CUCUMBER: &str = "Cucumber";pub const CARROT: &str = "Carrot";}
}fn main() {println!("favorite snacks: {} and {}",delicious_snacks::fruit,delicious_snacks::veggie,);
}
报错:
D:\LagerA\rust\a-ex\rustlings git:[master]
rustlings run modules2
error[E0425]: cannot find value `fruit` in module `delicious_snacks`--> exercises/10_modules/modules2.rs:25:27|
11 | pub const PEAR: &str = "Pear";| ------------------------------ similarly named constant `fruits` defined here
...
25 | delicious_snacks::fruit,| ^^^^^ help: a constant with a similar name exists: `fruits`error[E0425]: cannot find value `veggie` in module `delicious_snacks`--> exercises/10_modules/modules2.rs:26:27|
16 | pub const CUCUMBER: &str = "Cucumber";| -------------------------------------- similarly named constant `veggies` defined here
...
26 | delicious_snacks::veggie,| ^^^^^^ help: a constant with a similar name exists: `veggies`warning: unused import: `self::fruits::PEAR as fruits`--> exercises/10_modules/modules2.rs:7:9|
7 | use self::fruits::PEAR as fruits;| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^|= note: `#[warn(unused_imports)]` on by defaultwarning: unused import: `self::veggies::CUCUMBER as veggies`--> exercises/10_modules/modules2.rs:8:9|
8 | use self::veggies::CUCUMBER as veggies; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ For more information about this error, try `rustc --explain E0425`.
error: could not compile `exercises` (bin "modul
es2") due to 2 previous errors; 2 warnings emittedError: Ran exercises/10_modules/modules2.rs with errors
Solution
#[allow(dead_code)]
mod delicious_snacks {// 使用 `use` 语句将常量导入到模块的顶层作用域pub use self::fruits::PEAR as fruit;pub use self::veggies::CUCUMBER as veggie;pub mod fruits {pub const PEAR: &str = "Pear";pub const APPLE: &str = "Apple";}pub mod veggies {pub const CUCUMBER: &str = "Cucumber";pub const CARROT: &str = "Carrot";}
}fn main() {println!("favorite snacks: {} and {}",delicious_snacks::fruit,delicious_snacks::veggie,);
}