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 declaracionesuseyextern crateasync- retornar unFutureen lugar de bloquear el hilo actualawait- suspender la ejecución hasta que el resultado de unFutureesté 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 controlifyif letenum- 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 bucleforlet- 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, bloquesimplo 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.
abstractbecomeboxdofinalmacrooverrideprivtrytypeofunsizedvirtualyield
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.