Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Lampiran B: Operator dan Simbol

Lampiran ini berisi glosarium (kamus ringkas) tentang sintaks Rust, termasuk operator dan simbol-simbol lain yang muncul sendirian maupun di dalam konteks seperti paths, generics, trait bounds, macros, atribut, komentar, tuples, dan tanda kurung.

Operator

Tabel B-1 berisi daftar operator di Rust, contoh gimana operator tersebut muncul di dalam konteksnya, penjelasan singkat, dan apakah operator tersebut bisa di-overload (overloadable) atau tidak. Kalau sebuah operator bisa di-overload, trait relevan yang dipakai buat nge-overload operator tersebut juga dicantumkan.

Tabel B-1: Operator

OperatorContohPenjelasanBisa Di-overload?
!ident!(...), ident!{...}, ident![...]Ekspansi macro
!!exprBitwise atau logical complement (komplemen logika)Not
!=expr != exprPerbandingan ketidaksamaan (nonequality)PartialEq
%expr % exprSisa hasil bagi (remainder) aritmatikaRem
%=var %= exprSisa hasil bagi aritmatika dan assignment (penugasan)RemAssign
&&expr, &mut exprMeminjam (Borrow)
&&type, &mut type, &'a type, &'a mut typeTipe pointer pinjaman (Borrowed pointer type)
&expr & exprBitwise ANDBitAnd
&=var &= exprBitwise AND dan assignmentBitAndAssign
&&expr && exprLogical AND (hubungan singkat/short-circuiting)
*expr * exprPerkalian aritmatikaMul
*=var *= exprPerkalian aritmatika dan assignmentMulAssign
**exprDereference (Membuka rujukan)Deref
**const type, *mut typeRaw pointer
+trait + trait, 'a + traitBatasan tipe gabungan (Compound type constraint)
+expr + exprPenjumlahan aritmatikaAdd
+=var += exprPenjumlahan aritmatika dan assignmentAddAssign
,expr, exprPemisah argumen dan elemen
-- exprNegasi aritmatikaNeg
-expr - exprPengurangan aritmatikaSub
-=var -= exprPengurangan aritmatika dan assignmentSubAssign
->fn(...) -> type, |…| -> typeTipe balasan (return type) fungsi dan closure
.expr.identAkses ke field
.`expr.ident(expr, …+trait + trait, 'a + trait
+expr + exprPenjumlahan aritmatikaAdd
+=var += exprPenjumlahan aritmatika dan assignmentAddAssign
,expr, exprPemisah argumen dan elemen
-- exprNegasi aritmatikaNeg
-expr - exprPengurangan aritmatikaSub
-=var -= exprPengurangan aritmatika dan assignmentSubAssign
->fn(...) -> type, |…| -> typeTipe balasan (return type) fungsi dan closure
.expr.identAkses ke field
.`expr.ident(expr, …
^expr ^ exprBitwise exclusive ORBitXor
^=var ^= exprBitwise exclusive OR dan assignmentBitXorAssign
|pat | patAlternatif di pattern
|expr | exprBitwise ORBitOr
|=var |= exprBitwise OR dan assignmentBitOrAssign
||expr || exprLogical OR (hubungan singkat/short-circuiting)
?expr?Propagasi error

Simbol Non-Operator

Tabel-tabel berikut ini berisi semua simbol yang tidak berfungsi sebagai operator; yang artinya, mereka tidak berperilaku seperti pemanggilan fungsi atau method.

Tabel B-2 menunjukkan simbol-simbol yang muncul sendirian dan valid dipakai di berbagai macam tempat.

Tabel B-2: Sintaks Berdiri Sendiri (Stand-Alone Syntax)

SimbolPenjelasan
`’

Tabel B-3 nunjukin simbol-simbol yang muncul di dalam konteks penulisan jalur (path) melewati hierarki modul menuju sebuah item.

Tabel B-3: Sintaks Terkait Path

Tabel B-4 nunjukin simbol-simbol yang muncul di konteks pemakaian parameter tipe generic.

Tabel B-4: Generics

Tabel B-5 menunjukkan simbol-simbol yang muncul di dalam konteks untuk membatasi (constraining) parameter tipe generik dengan trait bounds (batasan trait).

Tabel B-5: Batasan Trait Bound

SimbolPenjelasan
T: UParameter generik T dibatasi pada tipe-tipe yang mengimplementasikan U
T: 'aTipe generik T wajib berumur lebih panjang (outlive) dari lifetime 'a (artinya tipe tersebut tidak boleh secara transitif menampung referensi yang punya lifetime lebih pendek dari 'a)
T: 'staticTipe generik T tidak punya referensi pinjaman (borrowed references) selain referensi yang bersifat 'static
'b: 'aLifetime generik 'b wajib berumur lebih panjang (outlive) dari lifetime 'a
T: ?SizedMengizinkan parameter tipe generik untuk bisa berupa tipe yang berukuran dinamis (dynamically sized type)
'a + trait, trait + traitBatasan tipe gabungan (Compound type constraint)

Tabel B-6 menunjukkan simbol-simbol yang muncul di konteks untuk memanggil atau mendefinisikan macros dan nentuin atribut buat sebuah item.

Tabel B-6: Macros dan Atribut

SimbolPenjelasan
#[meta]Atribut luar (Outer attribute)
#![meta]Atribut dalam (Inner attribute)
$identSubstitusi (penggantian) macro
$ident:kindMetavariabel macro
$(...)...Pengulangan macro (Macro repetition)
ident!(...), ident!{...}, ident![...]Pemanggilan (invocation) macro

Tabel B-7 menunjukkan simbol-simbol yang berfungsi buat ngebikin komentar.

Tabel B-7: Komentar

SimbolPenjelasan
//Komentar baris
//!Komentar dokumentasi baris bagian dalam (Inner line doc comment)
///Komentar dokumentasi baris bagian luar (Outer line doc comment)
/*...*/Komentar blok (Block comment)
/*!...*/Komentar dokumentasi blok bagian dalam (Inner block doc comment)
/**...*/Komentar dokumentasi blok bagian luar (Outer block doc comment)

Tabel B-8 nunjukin konteks di mana tanda kurung biasa (parentheses) dipakai.

Tabel B-8: Tanda Kurung Biasa (Parentheses)

SimbolPenjelasan
()Tuple kosong (dikenal juga dengan sebutan unit), baik literal maupun tipenya
(expr)Ekspresi yang dibungkus tanda kurung
(expr,)Ekspresi tuple dengan satu elemen tunggal
(type,)Tipe tuple dengan satu elemen tunggal
(expr, ...)Ekspresi tuple
(type, ...)Tipe tuple
expr(expr, ...)Ekspresi pemanggilan fungsi; juga dipakai buat menginisialisasi tuple structs dan varian dari tuple enum

Tabel B-9 nunjukin konteks di mana kurung kurawal (curly brackets) dipakai.

Tabel B-9: Kurung Kurawal (Curly Brackets)

KonteksPenjelasan
{...}Ekspresi blok
Type {...}Literal struct

Tabel B-10 nunjukin konteks di mana kurung siku (square brackets) dipakai.

Tabel B-10: Kurung Siku (Square Brackets)

KonteksPenjelasan