Anexa A: Cuvinte cheie
Următoarea listă conține cuvinte cheie care sunt rezervate pentru uzul curent sau viitor de către limbajul Rust. Ca atare, acestea nu pot fi utilizate ca identificatori (cu excepția ca identificatori "raw", așa cum vom discuta în secțiunea "Identificatori Raw"). Identificatorii sunt nume de funcții, variabile, parametri, câmpuri struct, module, crate-uri, constante, macro-uri, valori statice, atribute, tipuri, traits, sau lifetimes.
Cuvinte cheie actualmente în uz
Următoarea este o listă de cuvinte cheie actualmente în uz, cu funcționalitatea lor prezentată.
as
- efectuează tip casting primitiv, disambiguează trait-ul specific care conține un item sau redenumeste items în instrucțiuneause
async
- întoarce unFuture
în loc de a bloca firul curent de execuțieawait
- suspendă execuția până când rezultatul unuiFuture
este gatabreak
- iese imediat dintr-o buclăconst
- definește constante sau pointeri raw constanțicontinue
- continuă la următoarea iterație de buclăcrate
- în calea unui modul, se referă la rădăcina crate-uluidyn
- expediază dinamic către un obiect traitelse
- fallback pentru construcții de controlif
șiif let
enum
- definește o enumerațieextern
- leagă o funcție sau o variabilă externăfalse
- literal Boolean falsfn
- definește o funcție sau tipul unui pointer de funcțiefor
- trece prin elementele unui iterator, implementează un trait sau specifică un durată de viață de rang superiorif
- alege în funcție de rezultatul unei expresii condiționaleimpl
- implementează funcționalitatea inherentă sau a unei trăsăturiin
- face parte din sintaxa bucleifor
let
- leagă o variabilăloop
- buclă necondiționatămatch
- potrivește o valoare cu modelemod
- definește un modulmove
- face ca o închidere să preia posesiunea tuturor capturilor salemut
- denotă mutabilitate în referințe, pointeri raw, sau legături de patternpub
- denotă vizibilitate publică în câmpuri struct, blocuriimpl
sau moduleref
- leagă prin referințăreturn
- întoarce din funcțieSelf
- un alias pentru tipul pe care îl definim sau implementămself
- subiectul metodei sau modulul curentstatic
- variabilă globală sau timp de viață pe întreaga durată de execuție a programuluistruct
- definește o structurăsuper
- modulul părinte al modulului curenttrait
- definește o trăsăturătrue
- literal Boolean adevărattype
- definește un alias de tip sau un tip asociatunion
- definește o uniune; este un cuvânt cheie doar când este folosit într-o declarație de uniuneunsafe
- denotă cod, funcții, traits, sau implementări nesigureuse
- aduce simboluri în domeniul de vizibilitatewhere
- denotă clauze care constrâng un tipwhile
- buclă condiționată bazată pe rezultatul unei expresii
Cuvinte cheie rezervate pentru utilizare viitoare
Următoarele cuvinte cheie nu au încă nicio funcționalitate, dar sunt rezervate de Rust pentru o potențială utilizare în viitor.
abstract
become
box
do
final
macro
override
priv
try
typeof
unsized
virtual
yield
Identificatori bruți
Identificatorii bruți sunt sintaxa care îți permite să folosești cuvinte cheie acolo unde în mod normal nu ar fi permise. Folosești un identificator brut prin prefixarea unui cuvânt cheie cu r#
.
De exemplu, match
este un cuvânt cheie. Dacă încerci să compilezi următoarea funcție care folosește match
ca nume al său:
Numele fișierului: src/main.rs
fn match(needle: &str, haystack: &str) -> bool {
haystack.contains(needle)
}
vei primi această eroare:
error: expected identifier, found keyword `match`
--> src/main.rs:4:4
|
4 | fn match(needle: &str, haystack: &str) -> bool {
| ^^^^^ expected identifier, found keyword
Eroarea arată că nu poți folosi cuvântul cheie match
ca identificator al funcției. Pentru a folosi match
ca nume de funcție, trebuie să folosești sintaxa pentru identificatori bruți, în felul următor:
Numele fișierului: src/main.rs
fn r#match(needle: &str, haystack: &str) -> bool { haystack.contains(needle) } fn main() { assert!(r#match("foo", "foobar")); }
Acest cod se va compila fără nicio eroare. Observă prefixul r#
în numele funcției la definirea acesteia, cât și atunci când funcția este apelată în main
.
Identificatorii bruți îți permit să folosești orice cuvânt alegi ca identificator, chiar dacă acel cuvânt se întâmplă să fie un cuvânt cheie rezervat. Acest lucru ne oferă mai multă libertate în alegerea numelor de identificatori, precum și ne permite să ne integrăm cu programe scrise într-un limbaj unde aceste cuvinte nu sunt cuvinte cheie. În plus, identificatorii bruți îți permit să folosești librării scrise într-o ediție Rust diferită față de crate-ul tău. De exemplu, try
nu este un cuvânt cheie în ediția 2015, dar este în ediția 2018. Dacă depinzi de o librărie care este scrisă folosind ediția 2015 și are o funcție try
, va trebui să folosești sintaxa pentru identificatori bruți, r#try
în acest caz, pentru a apela acea funcție din codul tău din ediția 2018. Vezi Anexa E pentru mai multe informații despre ediții.