Ekleme B: Operatörler ve Semboller

Bu ekleme, Rust'ın yaygınlar, tanım sınırları, makrolar, nitelikler, yorum satırları, demetler ve parantezler bağlamında beliren operatörlerini ve diğer sembollerini dahil eden bir sözlüğü içerir.

Operatörler

Tablo B-1 Rust'taki operatörleri, kodda nasıl belireceğini, kısa özetini, nasıl aşırı yüklenilebileceğini gösterir.

Tablo B-1: Operatörler

OperatörÖrnekAçıklamaAşırı Yüklenilebilir mi?
!ident!(...), ident!{...}, ident![...]Makro genişlemesi
!!exprBitsel veya mantıksal tamamlayıcıNot
!=var != exprEşitsizlik karşılaştırıcıPartialEq
%expr % exprModuRem
%=var %= exprModu ve eşitlemesiRemAssign
&&expr, &mut exprReferans
&&type, &mut type, &'a type, &'a mut typeReferans işaretçi türü
&expr & exprBitsel VEBitAnd
&=var &= exprBitsel VE ve eşitlemesiBitAndAssign
&&expr && exprKısa devre mantıksal VE
*expr * exprAritmetik çarpmaMul
*=var *= exprAritmetik çarpma ve eşitlemesiMulAssign
**exprReferansı kaldırmaDeref
**const type, *mut typeHam işaretçi
+trait + trait, 'a + traitBileşik tür kısıtlaması
+expr + exprAritmetik toplamaAdd
+=var += exprAritmetik toplama ve eşitlemesiAddAssign
,expr, exprArgüman ve öğe ayırıcı
-- exprAritmetik olumsuzlamaNeg
-expr - exprAritmetik çıkarmaSub
-=var -= exprAritmetik çıkarma ve eşitlemesiSubAssign
->fn(...) -> type, |...| -> typeFonksiyon ve dönüş tipi
.expr.identÜye erişimi
...., expr.., ..expr, expr..exprSağa özgü aralık değişmeziPartialOrd
..=..=expr, expr..=exprSağ dahil aralık değişmeziPartialOrd
....exprYapı değişmezini güncelleme söz dizimi
..variant(x, ..), struct_type { x, .. }Model atama
...expr...expr(Kaldırıldı, yerine ..= kullanın) Bir modelde: kapsayıcı aralık modeli
/expr / exprAritmetik bölmeDiv
/=var /= exprAritmetik bölme ve eşitlemeDivAssign
:pat: type, ident: typeKısıtlama
:ident: exprYapı alanı oluşturucusu
:'a: loop {...}Döngü adı
;expr;Koşul ve öğe sonlandırıcı
;[...; len]Sabit boyutlu dizi söz diziminin bir parçası
<<expr << exprSola kaydırmaShl
<<=var <<= exprSola kaydırma ve eşitlemeShlAssign
<expr < exprDaha az karşılaştırmasıPartialOrd
<=expr <= exprDaha az ya da eşit karşılaştırmasıPartialOrd
=var = expr, ident = typeAtama/eşitlik
==expr == exprEşitlik karşılaştırmasıPartialEq
=>pat => exprmatch söz diziminin bir parçası
>expr > exprDaha fazla karşılaştırmasıPartialOrd
>=expr >= exprDaha fazla ya da eşit karşılaştırmasıPartialOrd
>>expr >> exprSağa kaydırmaShr
>>=var >>= exprSağa kaydırma ve eşitlemeShrAssign
@ident @ patModel atama
^expr ^ exprBitsel Dışlayıcı VEYA işleviBitXor
^=var ^= exprBitsel Dışlayıcı VEYA işlevi ve eşitlemeBitXorAssign
|pat | patModel alternatifleri
|expr | exprBitsel YA DABitOr
|=var |= exprBitsel YA DA ve eşitlemeBitOrAssign
||expr || exprKısa devre yapan mantıksal YA DA
?expr?Hata yayılımı

Operatör dışı Semboller

Aşağıdaki liste, operatör işlevi görmeyen tüm harfleri içerir. Yani, bir işlev veya yöntem çağrısı gibi davranmazlar

Tablo B-2, kendi başlarına görünen ve çeşitli şekillerde geçerli olan sembolleri göstermektedir.

Tablo B-2: Kendi Başına Söz Dizimi

SembolAçıklama
'identAdlandırılmış ömürlük ya da döngü adı
...u8, ...i32, ...f64, ...usize, vs.Belirli bir türün sayısal değişmezi
"..."Dizgi değişmezi
r"...", r#"..."#, r##"..."##, vs.Ham dizgi değişmezi, kaçış karakterleri işlenmez
b"..."Bitsel dizgi değişmezi; dizgi yerine bitlerden oluşan dizi oluşturur
br"...", br#"..."#, br##"..."##, vs.Ham bitsel dizgi değişmezi, ham ve bitsel dizgi değişmezi kombinasyonu
'...'Karakter değişmezi
b'...'ASCII bit değişmezi
|...| exprKapanış ifadeleri
!Farklı fonksiyonlar için her zaman boş alt tür
_“Ignored” model atama, ayrıca tam sayı değişmezlerini okunuşlu kılmak için de kullanılır

Tablo B-3 modül hiyerarşisinden bir öğeye giden yol bağlamında görünen tüm sembolleri gösterir.

Tablo B-3: Yol Bağlamlı Söz Dizimi

SembolAçıklama
ident::identAd alanı yolu
::pathSandığın köküne giden yol
self::pathHalihazırdaki modüle giden yol
super::pathAna modüle giden yol
type::ident, <type as trait>::identİlişkili sabitler, fonksiyonlar ve türler
<type>::...Doğrudan adlandırılamayan bir tür için ilişkili bir öğe (örneğin, <&T>::..., <[T]>::... vs.)
trait::method(...)Bir metod çağrısını tanımlayan özelliği adlandırarak belirsizliği giderme
type::method(...)Tanımlandığı türü adlandırarak bir metod çağrısının belirsizliğini giderme
<type as trait>::method(...)Tanımını ve türünü adlandırarak bir metod çağrısının belirsizliğini giderme

Tablo B-4 yaygın türü kullanma bağlamında görünen sembolleri gösterir

Tablo B-4: Yaygınlar

SembolAçıklama
path<...>Bir türdeki yaygın tür için parametreleri belirtir (örneğin, Vec<u8>)
path::<...>, method::<...>Bir ifadede yaygın türe, fonksiyona veya metoda ilişkin parametreleri belirtir; genellikle turbofish olarak anılır (örneğin, "42".parse::<i32>())
fn ident<...> ...Yaygın fonksiyon tanımlar
struct ident<...> ...Yaygın yapı tanımlar
enum ident<...> ...Yaygın numaralandırılmış yapı tanımlar
impl<...> ...Yaygın süreklemesini tanımlar
for<...> typeDaha yüksek dereceli şekilde ömürlük sınırlar
type<ident=type>Bir veya daha fazla ilişkili türün belirli atamalara sahip olduğu yaygın bir tür (örneğin, Iterator<Item=T>)

Tablo B-5 tanım sınırlamalarıyla yaygın tür parametrelerinin kısıtlanması bağlamında görünen sembolleri gösterir.

Tablo B-5: Tanıma Bağlı Kısıtlamalar

SembolAçıklama
T: UT yaygın parametresini U'yu uygulayan türlerle sınırlar
T: 'aT yaygın parametresi, a'nın ömründen daha uzun ömürlü olmalıdır
T: 'staticT yaygın parametresi, static olanlar dışında referansı alınmış başka bir referansı içeremez
'b: 'a'b yaygın parametresi, 'a'nın ömründen daha uzun ömürlü olmalıdır
T: ?SizedYaygın tür parametresinin dinamik olarak boyutlandırılmış bir tür olmasına izin ver
'a + trait, trait + traitBileşik tür kısıtlaması

Tablo B-6 makroları çağırma veya tanımlama ve bir öğedeki nitelikleri belirleme bağlamında görünen sembolleri gösterir.

Tablo B-6: Makrolar ve Özellikler

SembolAçıklama
#[meta]Dış özellik
#![meta]İç özellik
$identMakro belirteci
$ident:kindMakro yakalama
$(…)…Makro yineleme
ident!(...), ident!{...}, ident![...]Makro çağırma

Tablo B-7 yorum satırı olarak yorumlanan sembolleri gösterir.

Tablo B-7: Yorum Satırları

SembolAçıklama
//Yorum satırı
//!İç doküman yorum satırı
///Dış doküman yorum satırı
/*...*/Yorum bloğu
/*!...*/İç doküman yorum bloğu
/**...*/Dış doküman yorum bloğu

Tablo B-8 demet yapısı kullanımı bağlamında görünen sembolleri gösterir.

Tablo B-8: Demet Yapısı

BağlamAçıklama
()Boş demet, hem değişmez hem tür
(expr)Parantezli ifade
(expr,)Tek elemanlı demet ifadesi
(type,)Tek elemanlı demet türü
(expr, ...)Demet ifadesi
(type, ...)Demet türü
expr(expr, ...)Fonksiyon çağrı ifadesi; ayrıca struct ve enum varyantlarını çağırmak için kullanılır
expr.0, expr.1, etc.Demet elemanı göstergeci

Tablo B-9 süslü parantezlerin kullanıldığı bağlamları gösterir.

Tablo B-9: Süslü Parantezler

BağlamAçıklama
{...}Blok ifade
Type {...}struct değişmezi

Tablo B-10 köşeli parantezlerin kullanıldığı bağlamları gösterir.

Tablo B-10: Köşeli Parantezler

BağlamAçıklama
[...]Dize değişmezi
[expr; len]expr'i len kadar kopyalayan dize değişmezi
[type; len]typelen kadar tutan dize türü ifadesi
expr[expr]Koleksiyon elemanı göstergeci. (Index, IndexMut) aşırı yüklenebilir
expr[..], expr[a..], expr[..b], expr[a..b]Range, RangeFrom, RangeTo ya da RangeFull kullanarak koleksiyon dilimleyici gibi davranan koleksiyon elemanı göstergeci