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,
);
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
报错:
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
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.
- 25.
- 26.
- 27.
- 28.
- 29.
- 30.
- 31.
- 32.
- 33.
- 34.
- 35.
- 36.
- 37.
- 38.
- 39.
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,
);
}
- 1.
- 2.
- 3.
- 4.
- 5.
- 6.
- 7.
- 8.
- 9.
- 10.
- 11.
- 12.
- 13.
- 14.
- 15.
- 16.
- 17.
- 18.
- 19.
- 20.
- 21.
- 22.
- 23.
- 24.