RustRustlings_exercise
Modul
Versi Bahasa Indonesia. Baca dalam Bahasa Inggris
- Gunakan keyword
pubuntuk membuat item menjadi publik. - Gunakan keyword
useuntuk membawa path ke dalam scope. - Gunakan keyword
asuntuk membuat alias bagi path yang dibawa ke scope menggunakanuse. - Sebuah path dapat memiliki dua bentuk:
- Absolute path adalah path lengkap yang dimulai dari crate root; untuk kode dari crate eksternal, absolute path dimulai dengan nama crate, dan untuk kode dari crate saat ini, dimulai dengan literal
crate. - Relative path dimulai dari modul saat ini dan menggunakan
self,super, atau identifier dalam modul saat ini.
- Absolute path adalah path lengkap yang dimulai dari crate root; untuk kode dari crate eksternal, absolute path dimulai dengan nama crate, dan untuk kode dari crate saat ini, dimulai dengan literal
- Referensi:
modules1.rs
// TODO: Fix the compiler error about calling a private function.
mod sausage_factory {
// Don't let anybody outside of this module see this!
fn get_secret_recipe() -> String {
String::from("Ginger")
}
pub fn make_sausage() {
get_secret_recipe();
println!("sausage!");
}
}
fn main() {
sausage_factory::make_sausage();
}- Latihan ini sederhana, kita hanya perlu membuat fungsi
make_sausagedapat diakses dari fungsi main tetapi bukan fungsiget_secret_recipe. - Kita dapat melakukannya dengan menambahkan
pubsebelumfn make_sausage().
modules2.rs
// You can bring module paths into scopes and provide new names for them with
// the `use` and `as` keywords.
mod delicious_snacks {
// TODO: Add the following two `use` statements after fixing them.
pub use self::fruits::PEAR as fruit; // as fruit and add pub
pub use self::veggies::CUCUMBER as veggie; // as veggie and add pub
mod fruits {
pub const PEAR: &str = "Pear";
pub const APPLE: &str = "Apple";
}
mod veggies {
pub const CUCUMBER: &str = "Cucumber";
pub const CARROT: &str = "Carrot";
}
}
fn main() {
println!(
"favorite snacks: {} and {}",
delicious_snacks::fruit,
delicious_snacks::veggie,
);
}-
Di latihan ini
TODOmenyatakan bahwa kita perlu melengkapi sintaksusedi bawah ini:use self::fruits::PEAR as ???; use self::veggies::CUCUMBER as ???; -
Jadi kita dapat menyimpulkan bahwa kita perlu mengekspor ulang konstanta
PEARsebagaifruitdanCUCUMBERsebagaiveggie. -
Jangan lupa menambahkan
pubsehingga dapat diakses di fungsi main.
modules3.rs
// You can use the `use` keyword to bring module paths from modules from
// anywhere and especially from the standard library into your scope.
// TODO: Bring `SystemTime` and `UNIX_EPOCH` from the `std::time` module into
// your scope. Bonus style points if you can do it with one line!
// use ???;
use std::time::SystemTime;
use std::time::UNIX_EPOCH;
fn main() {
match SystemTime::now().duration_since(UNIX_EPOCH) {
Ok(n) => println!("1970-01-01 00:00:00 UTC was {} seconds ago!", n.as_secs()),
Err(_) => panic!("SystemTime before UNIX EPOCH!"),
}
}-
Di latihan ini kita perlu membawa
SystemTimedanUNIX_EPOCHke dalam scope main. -
Kita dapat melakukannya dengan menggunakan
useseperti di bawah ini:use std::time::SystemTime; use std::time::UNIX_EPOCH;
Edit on GitHub
Last updated on