Lewati ke konten

Cheat Sheet Rust

Halaman referensi cepat untuk hal-hal yang ingin kamu cek tanpa membaca ulang satu pelajaran penuh. Setiap bagian punya tautan ke halaman yang menjelaskannya dengan lengkap.

Keyword Arti
let Mendeklarasikan variabel (Variabel)
mut Membuat variabel atau referensi menjadi mutable (dapat diubah) (Variabel)
const Mendeklarasikan konstanta (Variabel)
fn Mendeklarasikan fungsi (Fungsi)
struct Mendeklarasikan struct (Struct)
enum Mendeklarasikan enum (Enum)
impl Menambahkan method ke sebuah tipe (Struct, Trait)
trait Mendeklarasikan trait (Trait)
match Pattern matching pada sebuah nilai (Match)
if let / while let Mencocokkan satu pola saja (If Let / While Let)
loop / while / for Tiga jenis perulangan (Loop, While, For)
break / continue Mengendalikan perulangan (Break/Continue)
mod Mendeklarasikan modul (Modul)
pub Membuat item bisa diakses dari luar modulnya (Modul)
use Membawa sebuah path ke dalam cakupan (Modul)
unsafe Membuka akses ke raw pointer dan operasi lain yang harus kamu periksa sendiri (Unsafe)
move Memaksa closure mengambil ownership nilai yang ditangkapnya (Konkurensi)
& / &mut Meminjam / meminjam sebuah nilai secara mutable (Borrowing)
Method Fungsinya
.len() Panjang dalam byte
.trim() Menghapus spasi di awal/akhir
.to_uppercase() / .to_lowercase() Mengubah huruf besar/kecil
.contains(pat) Apakah substring/pola ada di dalamnya
.replace(from, to) Mengganti semua kecocokan
.push_str(s) Menambahkan &str di akhir
.push(c) Menambahkan satu char di akhir
.chars() Iterasi karakter demi karakter
.split(pat) Memecah menjadi iterator berisi substring
.parse::<T>() Mengubah teks menjadi tipe lain (mengembalikan Result)

Lihat halaman String untuk detail dan contohnya.

Method Fungsinya
.push(x) Menambahkan ke akhir
.pop() Menghapus dan mengembalikan item terakhir (Option)
.remove(i) Menghapus item di indeks i
.len() Jumlah item
.is_empty() Apakah vektor tidak berisi item
.get(i) Akses indeks yang aman (Option, tidak panic)
.iter() Iterasi lewat referensi
.contains(&x) Apakah sebuah nilai ada di dalamnya
.sort() Mengurutkan langsung di tempat
.sort_by_key(|x| ...) Mengurutkan berdasarkan field atau kunci hasil hitungan
.dedup() Menghapus duplikat yang berurutan (urutkan dulu)

Lihat halaman Vektor, Mengurutkan dan Mencari, dan Iterator untuk detail dan contohnya.

Tipe Pakai saat kamu butuh…
Vec<T> Daftar berurutan yang bisa bertambah panjang
HashMap<K, V> Mencari nilai berdasarkan kunci dengan cepat
HashSet<T> Item yang unik dan pengecekan cepat “apakah ini ada di sini?”
BTreeMap<K, V> Pasangan kunci-nilai yang selalu terurut berdasarkan kunci
VecDeque<T> Antrean: push dan pop di kedua ujung

Lihat halaman HashMap dan HashSet dan BTreeMap untuk detail dan contohnya.

Method Berlaku untuk Fungsinya
.unwrap() Keduanya Mengambil nilainya, panic jika None/Err
.expect("msg") Keduanya Seperti .unwrap(), dengan pesan panic sendiri
.unwrap_or(default) Keduanya Mengambil nilainya, atau nilai cadangan
.is_some() / .is_none() Option Mengecek varian yang mana
.is_ok() / .is_err() Result Mengecek varian yang mana
? Keduanya Langsung return lebih awal jika None/Err

Lihat halaman Option dan Result untuk detail dan contohnya.

Specifier Yang dicetak
{} Tampilan normal (butuh trait Display)
{:?} Format debug
{:#?} Format debug yang dirapikan (pretty-print)
{:.2} 2 angka di belakang koma
{:5} Diberi padding sampai lebar 5
{name} Langsung menyisipkan variabel bernama name

Lihat halaman Output untuk detail dan contohnya.

Perintah Fungsinya
cargo new name Membuat proyek baru
cargo run Build lalu jalankan
cargo check Cek error dengan cepat, tanpa build
cargo test Menjalankan test
cargo add crate Menambahkan dependensi
cargo fmt Merapikan format kode
cargo clippy Memeriksa kode dari kesalahan umum (lint)
cargo build --release Build binary yang sudah dioptimasi

Lihat halaman Cargo dan Crate untuk detail dan contohnya.

Sintaks Arti
1..5 Dari 1 sampai sebelum 5 (5 tidak termasuk)
1..=5 Dari 1 sampai 5 (5 termasuk)
..3 Dari awal sampai sebelum 3
2.. Dari 2 sampai akhir
.. Semuanya

Lihat halaman For dan Slice untuk detail dan contohnya.

Kamu butuh… Crate Pelajaran
JSON (dan format lain) serde + serde_json JSON dengan Serde
Kode async, timer, jaringan tokio Async/Await
Antarmuka command-line clap CLI dengan clap
Penanganan error yang mudah anyhow, thiserror anyhow dan thiserror
Angka acak rand Angka Acak
Regular expression regex Regular Expression
Tanggal dan waktu chrono Tanggal dan Waktu
Logging log + env_logger, tracing Logging
Web server axum Web API dengan Axum

Tambahkan salah satunya dengan cargo add <crate>. Lihat Cargo dan Crate untuk cara memilih crate yang bagus.