Fungsi di Rust
Fungsi di Rust dideklarasikan dengan keyword fn. Rust mengharuskan kita mendeklarasikan tipe parameter dan tipe return secara eksplisit.
Sintaks Dasar
fn sapa(nama: &str) -> String {
format!("Halo, {}!", nama)
}
fn main() {
let pesan = sapa("Budi");
println!("{}", pesan); // "Halo, Budi!"
}
Parameter & Return Type
fn tambah(a: i32, b: i32) -> i32 {
a + b // tanpa semicolon = expression (return value)
}
fn cetak_info(nama: &str, umur: i32) {
// tanpa return type = return ()
println!("{} berumur {} tahun", nama, umur);
}
Expression vs Statement
Di Rust, baris terakhir tanpa ; adalah expression yang menjadi return value:
fn kuadrat(x: i32) -> i32 {
x * x // expression — ini yang dikembalikan
// x * x; // statement — ini return () dan akan ERROR
}
Multiple Return dengan Tuple
fn min_max(data: &[i32]) -> (i32, i32) {
let min = *data.iter().min().unwrap();
let max = *data.iter().max().unwrap();
(min, max)
}
fn main() {
let (terkecil, terbesar) = min_max(&[3, 1, 4, 1, 5, 9]);
println!("Min: {}, Max: {}", terkecil, terbesar);
}