Variables & Mutability

Variables & Mutability

Secara default variabel di Rust adalah immutable tidak bisa diubah, untuk membuat sebuah variabel baru cukup menggunakan keyword let diawal kemudian nama variabel dan nilainya, contohnya akan seperti ini let name = "hello"; dan untuk merubah variabel yang immutable menjadi mutable cukup menambahkan keyword mut setelah let jadinya akan seperti ini let mut name = "hello"; berikut kode lengkapnya.

fn main() {
// immutable variable -> variable yang tidak bisa diubah
let name = "Adiatma";
println!("{}", name); // "Adiatma"
// mutable variable -> variable yang bisa diubah
let mut change_name = "A";
println!("{}", change_name); // "A"
change_name = "Adiatma";
println!("{}", change_name); // "Adiatma"
}

Perbedaan Variables & Constants

Secara default constant itu memiliki sifat immutable, sehingga nilainya paten dan tidak bisa diubah. Untuk membuat variable constant bisa dengan menggunakan keyword const.

const MAX_POINT: i32 = 1000;

Constant sangatlah umum, dan bukan hal yang baru. Constant merupakan nilai yang terikat dengan sebuah nama dan bersifat mutlak. Adapun yang membedakan antara variabel dengan constant adalah sebagai berikut :

  • Umumnya constant diawali dengan keyword const sedangkan variabel let.
  • Variabel dapat menyimpan nilai dari function atau hasil operasi perhitungan, sedangkan constant hanya berupa nilai tetap.

Shadowing

Shadow berbeda dengan konsep mutable, kegunaan fitur ini adalah agar kita bisa memiliki banyak nama variabel yang sama, dan variable selanjutnya disebut sebagai shadow atau bayangan dari variabel sebelumnya. Fitur ini berguna jika ingin menimpa nilai yang ada sebelumnya dengan proses selanjutnya.

fn main() {
let x = 1;
let x = x * 2;
println!("{}", x); // 2
}

Contoh di atas terlihat variabel x yang sebelumnya bernilai satu kemudian nilai x yang sebelumnya akan ditimpa dengan nilai baru. Jika disimpulkan perbedaan shadow dengan mutable variable adalah terletak di cara pakainya.

Shadow akan menimpa nilai yang lama dengan yang baru, mutable variable untuk menggantikan nilai yang sebelumnya dengan yang baru. Untuk penggunaannya shadow butuh untuk dikombinasikan dengan let sehingga berbeda jika dibandingkan dengan mutable variable yang menimpa nilai baru tanpa menggunakan let.