Apéndice A: Palabras clave
La siguiente lista contiene palabras clave que están reservadas para el uso actual o futuro del lenguaje Rust. Por lo tanto, no se pueden usar como identificadores (excepto como identificadores brutos como discutiremos en la sección “Identificadores brutos”). Los identificadores son nombres de funciones, variables, parámetros, campos de estructuras, módulos, cajas, constantes, macros, valores estáticos, atributos, tipos, rasgos o lifetimes.
Palabras clave actuales en uso
La siguiente lista contiene las palabras clave actuales en uso, con su funcionalidad descrita.
as
- realiza una conversión primitiva, elimina la ambigüedad del trait específico que contiene un elemento, o cambiar el nombre de los elementos en las declaracionesuse
yextern crate
async
- retornar unFuture
en lugar de bloquear el hilo actualawait
- suspender la ejecución hasta que el resultado de unFuture
esté listobreak
- salir de un bucle inmediatamenteconst
- define elementos constantes o punteros crudos constantescontinue
- continuar con la siguiente iteración del buclecrate
- en un camino de módulo, se refiere a la raíz del módulodyn
- despacho dinámico a un objeto de rasgoelse
- alternativa para las construcciones de flujo de controlif
yif let
enum
- define una enumeraciónextern
- enlaza una función o variable externafalse
- literal booleano falsofn
- define una función o el tipo de puntero de funciónfor
- bucle sobre elementos de un iterador, implementa un rasgo, o especifica una vida más altaif
- ramificación basada en el resultado de una expresión condicionalimpl
- implementa funcionalidad propia o de rasgoin
- parte de la sintaxis del buclefor
let
- vincula una variableloop
- bucle sin condiciónmatch
- combina un valor con patronesmod
- define un módulomove
- hace que una función clausura tome posesión de todos sus capturasmut
- denota mutabilidad en referencias, punteros crudos o vinculaciones de patronespub
- denota visibilidad pública en campos de estructuras, bloquesimpl
o módulosref
- vincula por referenciareturn
- retorna de una funciónSelf
- un alias de tipo para el tipo que estamos definiendo o implementandoself
- sujeto de método o módulo actualstatic
- variable global o duración de vida que dura toda la ejecución del programastruct
- define una estructurasuper
- módulo padre del módulo actualtrait
- define un rasgotrue
- literal booleano verdaderotype
- define un alias de tipo o tipo asociadounion
- define una unión; solo es una palabra clave cuando se usa en una declaración de uniónunsafe
- denota código, funciones, rasgos o implementaciones insegurasuse
- importa símbolos en el ámbitowhere
- denota cláusulas que restringen un tipowhile
- bucle condicionalmente basado en el resultado de una expresión
Palabras clave reservadas para uso futuro
Las siguientes palabras clave no tienen aún ninguna funcionalidad, pero están reservadas por Rust para un uso potencial en el futuro.
abstract
become
box
do
final
macro
override
priv
try
typeof
unsized
virtual
yield
Identificadores brutos
Identificadores brutos son la sintaxis que le permite usar palabras clave
donde normalmente no se permitirían. Usted usa un identificador bruto
prefijando una palabra clave con r#
.
Por ejemplo, match
es una palabra clave. Si intenta compilar la siguiente
función que usa match
como su nombre:
Nombre de archivo: src/main.rs
fn match(needle: &str, haystack: &str) -> bool {
haystack.contains(needle)
}
obtendrá este error:
error: expected identifier, found keyword `match`
--> src/main.rs:4:4
|
4 | fn match(needle: &str, haystack: &str) -> bool {
| ^^^^^ expected identifier, found keyword
El error muestra que no se puede usar la palabra clave match
como
identificador de función. Para usar match
como nombre de función, necesita
usar la sintaxis de identificador bruto, como esta:
Nombre de archivo: src/main.rs
fn r#match(needle: &str, haystack: &str) -> bool { haystack.contains(needle) } fn main() { assert!(r#match("foo", "foobar")); }
Este código compilará sin errores. Note el prefijo r#
en el nombre de la
función en su definición, así como donde se llama la función en main
.
Los identificadores brutos permiten usar cualquier palabra como identificador,
incluso si esa palabra es una palabra clave. Esto nos da más libertad para
elegir nombres de identificadores, así como nos permite integrarnos con
programas escritos en un lenguaje donde estas palabras no son palabras clave.
Además, los identificadores brutos nos permiten usar bibliotecas escritas en
una edición de Rust diferente a la de su crate. Por ejemplo, try
no es una
palabra clave en la edición 2015, pero lo es en la edición 2018. Si depende de
una biblioteca que está escrita usando la edición 2015 y tiene una función
try
, necesitará usar la sintaxis de identificador bruto para llamar a esa
función desde su código de la edición 2018. Vea Apéndice E para obtener más información sobre las ediciones.