Tipe Data di Rust
Rust adalah bahasa statically typed — compiler harus tahu tipe setiap variabel. Namun Rust juga punya type inference yang cerdas.
Tipe Skalar
| Kategori | Tipe | Contoh |
|---|---|---|
| Integer | i8, i16, i32, i64, i128 | let x: i32 = 42; |
| Unsigned | u8, u16, u32, u64, u128 | let y: u32 = 100; |
| Float | f32, f64 | let pi: f64 = 3.14; |
| Boolean | bool | let aktif: bool = true; |
| Character | char | let huruf: char = 'A'; |
String Types
// &str — string slice (referensi, biasanya string literal)
let greeting: &str = "Hello";
// String — owned string (heap-allocated, bisa diubah)
let mut nama = String::from("Budi");
nama.push_str(" Santoso");
println!("{}", nama); // "Budi Santoso"
Konversi Tipe
let x: i32 = 42;
let y: f64 = x as f64; // casting dengan as
let z: i32 = 3.14_f64 as i32; // 3 (truncate)
// String ke angka
let angka: i32 = "42".parse().unwrap();
// Angka ke string
let teks = 42.to_string();
Tuple dan Array
// Tuple — tipe berbeda, ukuran tetap
let data: (i32, f64, &str) = (42, 3.14, "hello");
println!("{}", data.0); // 42
// Array — tipe sama, ukuran tetap
let arr: [i32; 3] = [1, 2, 3];
println!("{}", arr[0]); // 1