Struct & Impl — Rust

Struct di Rust Struct adalah cara untuk mengelompokkan data terkait menjadi satu tipe custom — mirip class di bahasa lain, tapi tanpa inheritance. Mendefinisika

Struct di Rust

Struct adalah cara untuk mengelompokkan data terkait menjadi satu tipe custom — mirip class di bahasa lain, tapi tanpa inheritance.

Mendefinisikan Struct

struct User {
    nama: String,
    email: String,
    umur: u32,
    aktif: bool,
}

fn main() {
    let user1 = User {
        nama: String::from("Budi"),
        email: String::from("[email protected]"),
        umur: 25,
        aktif: true,
    };
    println!("Nama: {}", user1.nama);
}

impl Block — Menambah Method

struct Persegi {
    sisi: f64,
}

impl Persegi {
    // Constructor (convention: fn new)
    fn new(sisi: f64) -> Persegi {
        Persegi { sisi }
    }

    // Method (menggunakan &self)
    fn luas(&self) -> f64 {
        self.sisi * self.sisi
    }

    fn keliling(&self) -> f64 {
        4.0 * self.sisi
    }
}

fn main() {
    let kotak = Persegi::new(5.0);
    println!("Luas: {}", kotak.luas());       // 25
    println!("Keliling: {}", kotak.keliling()); // 20
}

Struct Update Syntax

let user2 = User {
    email: String::from("[email protected]"),
    ..user1  // ambil sisa field dari user1
};

Tuple Struct

struct Color(u8, u8, u8);
struct Point(f64, f64);

let merah = Color(255, 0, 0);
let titik = Point(3.0, 4.0);
println!("R: {}", merah.0);

Display dengan #[derive]

#[derive(Debug)]
struct User {
    nama: String,
    umur: u32,
}
let u = User { nama: String::from("Budi"), umur: 25 };
println!("{:?}", u);  // User { nama: "Budi", umur: 25 }

Yang akan kamu pelajari