Deklarasi Variable
Untuk mendeklarasikan variable digunakan keyword let, berikut syntax dasar
let namaVariable = value;
Secara default variable pada Rust adalah immutable. Artinya setelah deklarasi, tidak bisa diubah. Agar bisa diubah, perlu digunakan keyword mut.
let mut namaVariable = value;
namaVariable = new_value;
Kita juga bisa mendeklarasikan variable disertai type data, digunakan semi colon untuk mendefinisikan type data. Berikut syntax dasarnya
let namaVariable : typeData = value;
let mut namaVariable : typeData = value;
Type Data
Type data primitive dari Rust terdapat dua macam: Simple dan Compound
Simple
Yang termasuk dalam tipe data simple adalah boolean, integer, floating dan character.
Boolean
- Didefinisinikan menggunakan keyword bool.
- Value: true atau false.
- Umum digunakan dalam control flow, seperti if dan while.
Integers
- Integers adalah angka bulat (tanpa decimal point).
- Ada dua jenis: signed dan unsigned.
- Memiliki ukuran yang menentukan jumlah angka yang bisa disimpan (lihat table dibawah).
signed | unsigned |
---|---|
i8 | u8 |
i16 | u16 |
i32 | u32 |
i64 | u64 |
Contoh i8, 7 bit integer, dengan 1 bit untuk sign. Artinya di8 dapat menyimpan nilai dari -128 sampai dengan 127.
Jika nilai yang akan disimpan adalah nilai positif, dapat digunakan u8, 8 bit integer. Artinya u8 dapat menyimpan nilai dari 0 sampai dengan 255.
Type integer lainnya adalah isize dan usize, dimana ukuran tergantung arsitektur dari mesin. Jika mesin 32 bit, maka isize dan usize akan berukuran 32 bit, demikian juga dengan mesin arsitektur 64 bit.
isize dan usize digunakan untuk indexing dan counting. Contoh:
let a = [100, 200, 300]
let b = a[0]
a[0], indeks nol akan menggunakan isize atau usize.
Jika tipe data tidak didefinisikan, maka secara defaul adalah i32.
let a = 5;
#tipe data a adalah i32
Floating Number
Angka dengan decimal point.
Terdapat 2 ukuran, yaitu f32 dan f64
Jika tipe data tidak didefinisikan, maka default adalah f64.
Characters
Rust dapat menyimpan single characters sebagai char.
char adalah unicode scalar value, jadi dapat menyimpan data selain ASCII.
char ditulis dalam single qoute ‘a’. Sementara string menggunakan double qoute “string”.
let a = 'a';
Compound Data Type
Pada compound data type terdapat tuple, array dan slice.
Tuple
group dari multiple value dimana tiap value tidak harus memiliki type data yang sama. Berikut syntax dasar dari tuple
let tup = (value1, value2, value3, dst);
let tup = (0, 'c', true);
Untuk mengakses item dari tuple digunakan tanda dot (.) disertai index.
tup.0
#akan mengembalikan nilai 0
tup.1
#akan mengembalikan nilai c
Untuk destructuring tuple, gunakan jumah variable yang sama dengan jumlah item tuple. Contoh dari tuple diatas dapat di destruktur seperti berikut:
let tup = (0, 'c', true);
let (a, b, c) = tup;
Arrays
Mirip dengan tuple, namun array harus memiliki tipe data sama. Contoh berikut adalah array dari 3 floating number.
let a = [0.1, 0.4, -1.2];
Untuk mengakses element dari array digunakan square brackets [index]. Index dimulai dari nol.
let a = [0.1, 0.4, -1.2];
a[0];
# mengembalikan nilai 0.1
a[2];
# mengembalikan nilai -1.2
Perhatian: Ukuran array tidak bisa diubah setelah inisialisasi.
Slice
- Adalah subset dari struktur data lainnya.
- Menggunakan start dan end index untuk melakukan slicing.
- start index adalah inklusif, sementara end index adalah eksklusif.
Contoh slice dari array:
let a = [100, 200, 300];
let b = &a[0..1];
#nilai b akan berisi 100