RustRustlings_exercise
Fungsi
Versi Bahasa Indonesia. Baca dalam Bahasa Inggris
- Mendeklarasikan fungsi menggunakan
fn, referensi: https://doc.rust-lang.org/std/primitive.fn.html - Kode Rust menggunakan snake case sebagai gaya konvensional untuk nama fungsi dan variabel.
- Dalam signature fungsi, kamu harus mendeklarasikan tipe dari setiap parameter.
- Saat mendefinisikan banyak parameter, pisahkan deklarasi parameter dengan koma.
- Fungsi dapat mengembalikan nilai ke kode yang memanggilnya. Kita tidak memberi nama nilai kembalian, tetapi kita harus mendeklarasikan tipenya setelah tanda panah
->. - Rust memiliki statements dan expressions:
- Statements adalah instruksi yang melakukan suatu tindakan dan tidak mengembalikan nilai.
- Expressions mengevaluasi menjadi nilai hasil. Mari kita lihat beberapa contoh.
- Jika kamu menambahkan titik koma di akhir expression, kamu mengubahnya menjadi statement, dan kemudian tidak akan mengembalikan nilai.
- Kamu dapat melakukan return awal dari fungsi dengan menggunakan keyword
returndan menentukan sebuah nilai, tetapi kebanyakan fungsi mengembalikan expression terakhir secara implisit. - Referensi: Functions
functions1.rs
// Add some function with the name `call_me` without arguments or a return value.
fn call_me() {
println!("called")
}
fn main() {
call_me(); // Don't change this line
}- Kita hanya perlu menambahkan fungsi baru bernama
call_metanpa nilai kembalian. - Kode Rust menggunakan snake case sebagai gaya konvensional untuk nama fungsi dan variabel, di mana semua huruf adalah huruf kecil dan garis bawah memisahkan kata.
- Referensi: https://doc.rust-lang.org/book/ch03-03-how-functions-work.html
functions2.rs
// Add the missing type of the argument `num` after the colon `:`.
// Lets use i32 for the argument tyoe.
fn call_me(num: i32) {
for i in 0..num {
println!("Ring! Call number {}", i + 1);
}
}
fn main() {
call_me(3);
}-
Dalam signature fungsi, kamu harus mendeklarasikan tipe dari setiap parameter.
This is a deliberate decision in Rust's design: requiring type annotations in function definitions means the compiler almost never needs you to use them elsewhere in the code to figure out what type you mean. The compiler is also able to give more helpful error messages if it knows what types the function expects.
-
Saat mendefinisikan banyak parameter, pisahkan deklarasi parameter dengan koma.
-
Jadi kita hanya perlu menambahkan
i32sebagai tipe argumen/parameter.
functions3.rs
fn call_me(num: u8) {
for i in 0..num {
println!("Ring! Call number {}", i + 1);
}
}
fn main() {
// Add parameters to call_me function.
call_me(5);
}- Fungsi
call_memengharapkan sebuah argumen/parameter, tambahkan5sebagai parameter karena fungsi mengharapkan tipeu8.
functions4.rs
// This store is having a sale where if the price is an even number, you get 10
// Rustbucks off, but if it's an odd number, it's 3 Rustbucks off.
// Don't worry about the function bodies themselves, we are only interested in
// the signatures for now.
fn is_even(num: i64) -> bool {
num % 2 == 0
}
//
fn sale_price(price: i64) -> i64 {
if is_even(price) {
price - 10
} else {
price - 3
}
}
fn main() {
let original_price = 51;
println!("Your sale price is {}", sale_price(original_price));
}- Fungsi dapat mengembalikan nilai ke kode yang memanggilnya. Kita tidak memberi nama nilai kembalian, tetapi kita harus mendeklarasikan tipenya setelah tanda panah
->. - Di latihan ini kita hanya perlu menambahkan tipe kembalian sebagai
i64.
functions5.rs
// Remove the semicolon to make it as expression
fn square(num: i32) -> i32 {
num * num
}
fn main() {
let answer = square(3);
println!("The square of 3 is {answer}");
}- Rust memiliki statements dan expressions:
- Statements adalah instruksi yang melakukan suatu tindakan dan tidak mengembalikan nilai.
- Expressions mengevaluasi menjadi nilai hasil. Mari kita lihat beberapa contoh.
- Jika kamu menambahkan titik koma di akhir expression, kamu mengubahnya menjadi statement, dan kemudian tidak akan mengembalikan nilai.
- Kamu dapat melakukan return awal dari fungsi dengan menggunakan keyword
returndan menentukan sebuah nilai, tetapi kebanyakan fungsi mengembalikan expression terakhir secara implisit. - Di latihan ini fungsi
squaremengharapkan nilai kembalian, tetapi body fungsi hanya memiliki satu baris statement. Dengan menghapus titik koma;kita menjadikannya sebagai expression dan akan mengembalikan nilai darinum * num
Edit on GitHub
Last updated on