Ana içeriğe geç

appendix-02-operators

Ek B: Operatörler ve Semboller

Bu ek, Rust’ın sözdizimi ile ilgili bir sözlük içermektedir; operatörler ve
kendi başlarına veya yollar, generikler, trait sınırlamaları, makrolar, özellikler, yorumlar, demetler ve köşeli parantezler bağlamında görünen diğer semboller de dahil.

Operatörler

Tablo B-1, Rust'taki operatörleri, operatörün bağlamda nasıl görüneceğine dair bir örneği, kısa bir açıklamayı ve o operatörün aşırı yüklenebilir olup olmadığını içermektedir. Eğer bir operatör aşırı yüklenebilir ise, o operatörün aşırı yüklenmesi için kullanılacak ilgili trait listelenmiştir.

Tablo B-1: Operatörler

OperatörÖrnekAçıklamaAşırı Yüklenebilir mi?
!ident!(...), ident!{...}, ident![...]Makro genişletme
!!exprBit düzeyinde veya mantıksal tamamlayıcıNot
!=expr != exprEşitsizlik karşılaştırmasıPartialEq
%expr % exprAritmetik kalanRem
%=var %= exprAritmetik kalan ve atamaRemAssign
&&expr, &mut exprBorçlanma
&&type, &mut type, &'a type, &'a mut typeBorçlanan işaretçi türü
&expr & exprBit düzeyinde VEBitAnd
&=var &= exprBit düzeyinde VE ve atamaBitAndAssign
&&expr && exprKısa devre mantıksal VE
*expr * exprAritmetik çarpmaMul
*=var *= exprAritmetik çarpma ve atamaMulAssign
**exprDereferenceDeref
**const type, *mut typeHam işaretçi
+trait + trait, 'a + traitBileşik tür kısıtlaması
+expr + exprAritmetik toplamaAdd
+=var += exprAritmetik toplama ve atamaAddAssign
,expr, exprArgüman ve eleman ayırıcı
-- exprAritmetik negatiflemeNeg
-expr - exprAritmetik çıkarmaSub
-=var -= exprAritmetik çıkarma ve atamaSubAssign
->fn(...) -> type, |...| -> typeFonksiyon ve closure dönüş tipi
.expr.identÜye erişimi
...., expr.., ..expr, expr..exprSağ dışlayıcı aralık ifadesiPartialOrd
..=..=expr, expr..=exprSağ dahil aralık ifadesiPartialOrd
....exprStruct literal güncelleme sözdizimi
..variant(x, ..), struct_type { x, .. }“Ve geri kalanı” model bağlama
...expr...expr(Kullanımdan kaldırıldı, bunun yerine ..= kullanın) Bir modelde: dahil aralık modeli
/expr / exprAritmetik bölmeDiv
/=var /= exprAritmetik bölme ve atamaDivAssign
:pat: type, ident: typeKısıtlamalar
:ident: exprStruct alan başlatıcısı
:'a: loop {...}Döngü etiketi
;expr;İfade ve öğe sonlandırıcı
;[...; len]Sabit boyutlu dizi sözdizimi parçası
``pat => exprEşleşme kolu sözdiziminin bir kısmı
>expr > exprBüyükten karşılaştırmaPartialOrd
>=expr >= exprBüyük veya eşit karşılaştırmaPartialOrd
>>expr >> exprSağdan kaydırmaShr
>>=var >>= exprSağdan kaydırma ve atamaShrAssign
@ident @ patModel bağlama
^expr ^ exprBit düzeyinde ayrı veyaBitXor
^=var ^= exprBit düzeyinde ayrı veya ve atamaBitXorAssign
?expr?Hata yayılma

Operatör Olmayan Semboller

Aşağıdaki liste, operatör olarak işlev görmeyen tüm sembolleri içerir; yani, bir işlev veya metod çağrısı gibi davranmazlar.

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

Tablo B-2: Tek Başına Sözdizimi

SembolAçıklama
'identİsimlendirilmiş yaşam süresi veya döngü etiketi
...u8, ...i32, ...f64, ...usize, vb.Belirli türde sayısal literal
"..."Dize literal
r"...", r#"..."#, r##"..."##, vb.Ham dize literal, kaçış karakterleri işlenmez
b"..."Bayt dize literal; bir dizi bayt oluşturur, dize yerine
br"...", br#"..."#, br##"..."##, vb.Ham bayt dize literal, ham ve bayt dize literal birleşimi
'...'Karakter literal
b'...'ASCII bayt literal
|...| exprClosure
!Her zaman dallanan fonksiyonlar için boş dip türü
_“Göz ardı” edilen model bağlaması; ayrıca tam sayılı literal'leri okunabilir kılmak için kullanılır

Tablo B-3, bir öğeye doğru modül hiyerarşisi boyunca bir yol bağlamında görünen sembolleri göstermektedir.

Tablo B-3: Yol ile İlgili Sözdizimi

SembolAçıklama
ident::identAd alanı yolu
::pathTüm diğer crate'lerin kök aldığı dış prelude'a göre yol (yani, crate adını içeren açıkça mutlak yol)
self::pathMevcut modüle göre yol (yani, açıkça göreli bir yol).
super::pathMevcut modülün ebeveynine göre yol
type::ident, ::identİlişkili sabitler, fonksiyonlar ve türler
::...Doğrudan isimlendirilemeyen bir türün ilişkili öğesi (örneğin, ::..., ::..., vb.)
trait::method(...)Bir metod çağrısını tanımlayan trait'yi isimlendirerek ayırt etme
type::method(...)Tanımlandığı türü isimlendirerek bir metod çağrısını ayırt etme
::method(...)Trait ve türü isimlendirerek bir metod çağrısını ayırt etme

Tablo B-4, genel tür parametrelerini kullanmanın bağlamında görünen sembolleri göstermektedir.

Tablo B-4: Generikler

SembolAçıklama
pathBir türde genel tür için parametreleri belirtir (örneğin, Vec)
path::, method::Bir ifadede genel tür, fonksiyon veya metoda parametreleri belirtir; genellikle turbo fish olarak adlandırılır (örneğin, "42".parse::())
fn ident ...Genel fonksiyon tanımlama
struct ident ...Genel yapı tanımlama
enum ident ...Genel enum tanımlama
impl ...Genel uygulama tanımlama
for typeDaha yüksek sıralı yaşam süresi sınırları
typeBir veya daha fazla ilişkili türün belirli atamaları olan genel tür (örneğin, Iterator)

Tablo B-5, trait sınırları ile genel tür parametrelerini kısıtlamanın bağlamında görünen sembolleri göstermektedir.

Tablo B-5: Trait Sınır Kısıtlamaları

SembolAçıklama
T: UGenel parametre T, U'yu uygulayan türlerle kısıtlıdır
T: 'aGenel tür T, yaşam süresi 'a'yı aşmalıdır (yani tür, 'a'dan daha kısa yaşam sürelerine sahip referanslar içeremez)
T: 'staticGenel tür T, yalnızca 'static olan referanslar içerir
'b: 'aGenel yaşam süresi 'b, yaşam süresi 'a'dan uzun olmalıdır
T: ?SizedGenel 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 öğeye özellikler belirtme bağlamında görünen sembolleri göstermektedir.

Tablo B-6: Makrolar ve Özellikler

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

Tablo B-7, yorumlar oluşturan sembolleri göstermektedir.

Tablo B-7: Yorumlar

SembolAçıklama
//Satır yorumu
//!İç satır belge yorumu
///Dış satır belge yorumu
/*...*/Blok yorumu
/*!...*/İç blok belge yorumu
/**...*/Dış blok belge yorumu

Tablo B-8, demetleri kullanma bağlamında görünen sembolleri göstermektedir.

Tablo B-8: Demetler

SembolAçıklama
()Boş demet (aka birim), hem literal hem de tür
(expr)Parantez içine alınmış 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; demet struct'larını ve demet enum varyantlarını başlatmak için de kullanılır
expr.0, expr.1, vb.Demet dizinleme

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

Tablo B-9: Süslü Parantezler

BağlamAçıklama
{...}Blok ifadesi
Type {...}struct literal

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

Tablo B-10: Köşeli Parantezler

BağlamAçıklama
[...]Dizi literal
[expr; len]len kopyaları içeren dizi literal
[type; len]len örneklerini içeren dizi türü
expr[expr]Koleksiyon dizinleme. Aşırı yüklenebilir (Index, IndexMut)
expr[..], expr[a..], expr[..b], expr[a..b]Koleksiyon dizinlemenin koleksiyon dilimlemesi gibi görünmesini sağlamak; "dizin" olarak Range, RangeFrom, RangeTo veya RangeFull kullanmak

ipucu

Not: Yukarıdaki tablolar, Rust'ın operatörleri ve sembolleri hakkında kapsamlı bir bakış sunmaktadır.

Her bir operatör veya sembol ile ilgili bilgilere dikkatle göz atın.

bilgi

Bilgilerin doğru ve güncel olduğundan emin olun!