阅读量:0
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 default warning: 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 emitted Error: 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, ); }