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 diubahlet name = "Adiatma";println!("{}", name); // "Adiatma"// mutable variable -> variable yang bisa diubahlet 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 variabellet
. - 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
.