Literal: data konstanta yang ditulis langsung di kode dan nilainya langsung terlihat sekilas, merupakan bentuk representasi data paling dasar dalam program.
Nilainya tetap dan tidak bisa berubah, tertulis secara permanen di kode dan tidak dapat diubah saat program berjalan. Tidak perlu perhitungan maupun parsing variabel, secara harfiah berarti “nilai tertulis apa adanya”.
Contoh: angka 13 dan 3.14 di bawah ini adalah literal, di bahasa pemrograman lain juga disebut nilai literal.
fn main() {
println!("{}", 13);
println!("{}", 3.14);
}Code language: JavaScript (javascript)
Agar mudah dipelajari, tim resmi menyediakan editor Rust berbasis daring. Anda tidak perlu memasang lingkungan lokal untuk berlatih sintaks dasar Rust, klik tautan di bawah
Literal
Rust mendukung literal tipe berikut: bilangan bulat, bilangan pecahan titik mengambang, karakter, string, boolean, unit (satuan).
- Bilangan bulat:
11 - Karakter:
'a'(tanda kutip tunggal) - String:
"abc"(tanda kutip ganda) - Boolean:
true/false - Tipe unit:
()
Berbagai sistem bilangan untuk bilangan bulat
Sistem bilangan dibedakan dengan awalan (prefix), hanya berlaku untuk bilangan bulat:
- Heksadesimal: dimulai dengan
0x, contoh:0x1F - Oktal: dimulai dengan
0o, contoh:0o77 - Biner: dimulai dengan
0b, contoh:0b1010
Pemisah angka
Di dalam literal angka bisa disisipkan garis bawah _ agar lebih mudah dibaca, tidak mengubah nilai angka asli:
- Bilangan bulat:
1_000=1000 - Bilangan titik mengambang:
0.000_001=0.000001
Notasi ilmiah
Bilangan titik mengambang mendukung notasi ilmiah dengan huruf E, tipe bawaan adalah f64:
1e6= 10000007.6e-4= 0.00076
Akhiran tipe literal (Penting)
Rust mewajibkan tipe literal ditulis secara eksplisit, berikut akhiran yang sering dipakai:
u32: bilangan bulat 32 bit tanpa tanda (hanya nilai non-negatif)i32: bilangan bulat 32 bit bertanda (bisa positif maupun negatif)
Peringatan: Tidak boleh mencampur operasi bilangan bulat bertanda dan tanpa tanda, akan langsung muncul error kompilasi.
Contoh Kode:
fn main() {
// 1. Literal bilangan bulat biasa
println!("Bilangan bulat: {}", 13);
// Bilangan biner, oktal, heksadesimal
println!("Biner: {}", 0b1010);
println!("Oktal: {}", 0o77);
println!("Heksadesimal: {}", 0x2A);
// Bilangan bulat dengan pemisah (mudah dibaca)
println!("Bilangan bulat dengan garis bawah: {}", 1_000_000);
// Bilangan bulat dengan akhiran tipe
println!("u32 bilangan bulat tanpa tanda: {}", 100u32);
println!("i32 bilangan bulat bertanda: {}", -50i32);
// 2. Literal bilangan titik mengambang
println!("Bilangan titik mengambang: {}", 3.14);
// Bilangan titik mengambang dengan garis bawah
println!("Bilangan titik mengambang dengan garis bawah: {}", 0.000_001);
// Bilangan titik mengambang notasi ilmiah
println!("Notasi ilmiah: {}", 1e6);
println!("Notasi ilmiah negatif: {}", 7.6e-4);
// 3. Literal string (tanda kutip ganda)
println!("String: {}", "hello world");
// 4. Literal karakter (tanda kutip tunggal, hanya satu karakter saja)
println!("Karakter: {}", 'a');
println!("Karakter Mandarin: {}", '中');
// 5. Literal boolean
println!("Boolean true: {}", true);
println!("Boolean false: {}", false);
// 6. Literal unit () (tipe unit milik Rust)
println!("Tipe unit: {:?}", ());
}Code language: JavaScript (javascript)
Operator
Aturan dan urutan prioritas operator Rust hampir sama dengan bahasa keluarga C.