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
Section titled “Keyword”| 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 String yang sering dipakai
Section titled “Method String yang sering dipakai”| 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 Vec yang sering dipakai
Section titled “Method Vec yang sering dipakai”| 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.
Koleksi mana yang sebaiknya dipakai?
Section titled “Koleksi mana yang sebaiknya dipakai?”| 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.
Option dan Result
Section titled “Option dan Result”| 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.
Format specifier (println!, format!)
Section titled “Format specifier (println!, format!)”| 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 Cargo
Section titled “Perintah Cargo”| 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 range
Section titled “Sintaks range”| 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.
Crate populer
Section titled “Crate populer”| 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.
Bacaan lebih lanjut
Section titled “Bacaan lebih lanjut”- Rust Language Cheat Sheet — cheats.rs: referensi satu halaman yang jauh lebih lengkap, dari sintaks sampai tata letak memori (bahasa Inggris).
- Appendix B: Operators and Symbols — The Rust Book: semua operator dan simbol di Rust beserta artinya (bahasa Inggris).
- std::fmt — dokumentasi standard library: seluruh sintaks format untuk
println!danformat!: lebar, padding, presisi, dan lainnya (bahasa Inggris). - Perintah Cargo — The Cargo Book: semua perintah
cargobeserta opsinya (bahasa Inggris).