Struct dipakai untuk mengelompokkan data yang saling terkait.
struct Pengguna {
nama: String,
umur: u8,
aktif: bool,
}Pemakaian:
let user = Pengguna {
nama: String::from("Dina"),
umur: 22,
aktif: true,
};struct Persegi {
lebar: u32,
tinggi: u32,
}
impl Persegi {
fn luas(&self) -> u32 {
self.lebar * self.tinggi
}
}&self berarti method meminjam instance.
Enum dipakai saat data bisa memiliki beberapa variasi.
enum StatusPesanan {
Diproses,
Dikirim,
Selesai,
}Enum juga bisa membawa data:
enum Pembayaran {
Tunai,
Transfer(String),
EWallet(String),
}match sangat penting di Rust.
let status = StatusPesanan::Dikirim;
match status {
StatusPesanan::Diproses => println!("Pesanan sedang diproses"),
StatusPesanan::Dikirim => println!("Pesanan sedang dikirim"),
StatusPesanan::Selesai => println!("Pesanan selesai"),
}Semua kemungkinan harus ditangani.
Rust tidak punya null biasa. Sebagai gantinya, ada Option<T>.
let nama_tengah: Option<String> = None;Contoh:
match nama_tengah {
Some(nama) => println!("Nama tengah: {}", nama),
None => println!("Tidak ada nama tengah"),
}- Buat struct
Bukudengan fieldjudul,penulis, dantahun. - Tambahkan method untuk menampilkan ringkasan buku.
- Buat enum
PeranPenggunadengan beberapa varian. - Gunakan
matchuntuk mencetak hak akses berdasarkan peran.
Buat enum Bentuk dengan varian:
Persegi(u32, u32)Lingkaran(f32)
Lalu buat fungsi yang menghitung luas berdasarkan match.