Fungsi Rust memiliki banyak nuansa yang berbeda dari bahasa lain. Pelajari semua tentang sintaks mereka di sini.

Fungsi adalah konstruksi pemrograman yang penting karena mereka meletakkan dasar untuk penggunaan kembali kode dan memfasilitasi pemrograman modular. Fungsi adalah blok kode mandiri yang melakukan tugas tertentu. Mereka dapat menerima masukan, dalam bentuk argumen, dan mengembalikan nilai.

Rust menyediakan fungsi untuk organisasi kode, enkapsulasi, dan penggunaan kembali kode.

Mendefinisikan Fungsi di Rust

Fungsi karat sangat mirip fungsi dalam bahasa pemrograman lain, meskipun ada perbedaan kecil yang perlu Anda pahami.

Anda akan menentukan fungsi untuk program Rust Anda dengan fn kata kunci diikuti dengan nama fungsi, argumen opsional, dan pengembalian opsional tipe data.

// fungsi yang tidak mengambil argumen atau mengembalikan nilai
fn nama_fungsi() {
// fungsi tubuh di sini
}

Berikut adalah fungsi Rust sederhana yang tidak menerima argumen apa pun atau mengembalikan nilai apa pun.

fn a_function(){
misalkan x = 3;
println!("{}", X)
}

sebuah fungsi adalah fungsi Rust sederhana yang mencetak variabel X.

Tanda Tangan Fungsi Karat

Tanda tangan fungsi adalah cara penamaan fungsi, dan menjelaskan argumen dan tipe pengembaliannya, tanpa menyertakan badan fungsi. Tanda tangan fungsi berguna untuk mendokumentasikan API pustaka Rust.

Berikut ini contoh tanda tangan fungsi Rust:

nama fn()

fn salam (nama: &str)

Itu nama fungsi adalah tanda tangan fungsi minimal, sedangkan menyapa tanda tangan menentukan bahwa fungsi mengambil argumen tunggal, nama, bertipe string (&str).

Mendeklarasikan Fungsi Dengan Argumen dan Mengembalikan Nilai

Fungsi karat dapat menerima banyak argumen, dan batasnya tidak ditentukan secara eksplisit. Fungsi dengan argumen umumnya lebih fleksibel karena dapat mengambil nilai dari fungsi lain dan bagian kode.

Inilah model tipikal dari fungsi Rust yang menggunakan argumen:

fn nama_fungsi (arg: jenis, argumen2: jenis) {
// fungsi tubuh di sini
}

Jenis argumen fungsi dapat berupa tipe bawaan Rust atau tipe khusus dari program Anda.

Berikut adalah contoh fungsi sederhana yang menggunakan dua bilangan bulat sebagai argumen:

fn tambah_nomor (x: i32, y: i32) {
println!("{}", x + y);
}

Itu add_numbers fungsi mengambil dua bilangan bulat 32-bit dan mencetak jumlah bilangan bulat.

Fungsi karat dapat mengembalikan banyak nilai; Anda harus menentukan tipe pengembalian dan mengembalikan nilai tipe dari fungsi.

fn nama_fungsi (arg: jenis, argumen2: jenis) -> (jenis, jenis) {
// fungsi tubuh di sini
kembali arg, arg2
}

Berikut adalah fungsi yang menggunakan string dan bilangan bulat 32-bit sebagai argumen dan mengembalikan argumen sebagai tupel.

fn string_and_integer (s: String, n: i32) -> (String, i32) {
kembali (s, n);
}

Itu string_and_integer fungsi menerima string dan integer 32-bit, mengembalikannya sebagai tuple. Anda hanya dapat mengembalikan satu nilai dari fungsi Rust.

Anda dapat meninggalkan kembali kata kunci saat mengembalikan ekspresi akhir dari suatu fungsi, untuk membuat kode lebih ringkas.

fn string_and_integer (s: String, n: i32) -> (String, i32) {
kembali (s, n);
}

// fungsinya setara

fn str_and_int (s: String, n: i32) -> (String, i32) {
(s, n)
}

Kedua fungsi ini memiliki perilaku yang sama karena keduanya mengambil string dan integer dan mengembalikan argumen tersebut sebagai tupel.

Memanggil Fungsi Karat

Anda dapat memanggil satu fungsi dari yang lain dengan menulis namanya diikuti dengan nilai yang ingin Anda teruskan di dalam tanda kurung:

fn add_numbers (x: i32, y: i32) -> i32 {
x + y
}

fn main() {
biarkan hasil = tambah_angka(3, 5);
println!("Hasilnya adalah {}", hasil); // Keluaran: Hasilnya adalah 8
}

Itu utama panggilan fungsi add_numbers, meneruskannya dengan dua bilangan bulat. Ini memberikan hasil dari fungsi ke variabel, hasil.

Anda Dapat Mendeklarasikan Fungsi untuk Rust Structs

Anda dapat mendeklarasikan fungsi dalam struktur Rust. Ini menjadi metode untuk struct yang dapat mengakses dan memodifikasinya.

Rust tidak murni berorientasi objek, tetapi menyediakan struktur untuk mengelompokkan data terkait. Anda dapat berupaya menerapkan konsep OOP di Rust menggunakan struct dengan metode.