Skip to main content

Command Palette

Search for a command to run...

Rust - Apa Itu Trait ?

Updated
1 min read
Rust - Apa Itu Trait ?

Traits adalah salah satu fitur dalam pemrogramman Rust, yang mana ketika ditranslate dalam bahasa Indonesia sendiri artinya sifat - sifat, tapi apa maksudnya?. Dengan adanya Traits ketika memprogram dalam Rust kita dapat mendefinisikan sifat/prilaku/behavior yang nantinya dapat dibagikan dan digunakan untuk berbagai tipe data.

Jika dalam bahasa pemrograman Java traits ini mirip dengan interface

Pada Rust traits di deklaraikan dengan keyword traits yang berisi header nama traits dan kontrak fungsi atau methodnya contoh

trait NamaTrait {
    fn nama_fungsi(&self, params) -> return_type;
    ...
}

Traits biasanya di implentasikan pada struct atau tipe data lain menggunakan blok impl, contoh:

trait Description {
    fn info(&self) -> String;
}

struct Animal {
    name: String,
    age: u8,
}

impl Description for Animal {
    fn info(&self) -> String {
        format!("name {} and age {}", self.name, self.age)
    }
}

struct Human {
    name: String,
    pet: Animal,
}

impl Description for Human {
    fn info(&self) -> String {
        format!("Person name {} has pet {}", self.name, self.pet.info())
    }
}

fn main() {
    let dog = Animal {
        name: String::from("husk"),
        age: 1
    };

    let jane_doe = Human {
        name: String::from("Jane Doe"),
        pet: dog
    };

    println!("{}", jane_doe.info());
}