Referencia de palabras clave
Este tema contiene vínculos a información sobre todas las palabras clave del lenguaje F#.
Tabla de palabras clave de F#
En la tabla siguiente se muestran todas las palabras clave de F# en orden alfabético, junto con breves descripciones y vínculos a temas pertinentes que contienen más información.
Palabra clave | Vínculo | Descripción |
---|---|---|
abstract |
Miembros Clases abstractas |
Indica un método que no tiene ninguna implementación en el tipo en el que se declara o un método que es virtual y tiene una implementación predeterminada. |
and |
Enlaces let Registros Miembros Restricciones |
Se usa en registros y enlaces mutuamente recursivos, en declaraciones de propiedad y con varias restricciones en parámetros genéricos. |
as |
Clases Coincidencia de patrones |
Se usa para asignar un nombre de objeto al objeto de clase actual. También se usa para asignar un nombre a un patrón completo dentro de una coincidencia de patrones. |
assert |
Aserciones | Se usa para comprobar el código durante la depuración. |
base |
Clases Herencia |
Se usa como nombre del objeto de clase base. |
begin |
Sintaxis detallada | En la sintaxis detallada, indica el inicio de un bloque de código. |
class |
Clases | En la sintaxis detallada, indica el inicio de una definición de clase. |
default |
Miembros | Indica una implementación de un método abstracto. Se usa junto con una declaración de método abstracto para crear un método virtual. |
delegate |
Delegados | Se usa para declarar un delegado. |
do |
do (Enlaces) Bucles: expresión for...to Bucles: expresión for...in Bucles: expresión while...do |
Se usa en construcciones de bucle o para ejecutar código imperativo. |
done |
Sintaxis detallada | En la sintaxis detallada, indica el final de un bloque de código en una expresión de bucle. |
downcast |
Conversiones | Se usa para realizar la conversión a un tipo situado en un nivel inferior de la cadena de herencia. |
downto |
Bucles: expresión for...to |
En una expresión for , se usa al contar en orden inverso. |
elif |
Expresiones condicionales: if...then...else |
Se usa en la creación de ramas condicional. Forma corta de else if . |
else |
Expresiones condicionales: if...then...else |
Se usa en la creación de ramas condicional. |
end |
Structs Uniones discriminadas Registros Extensiones de tipo Sintaxis detallada |
En las definiciones de tipo y las extensiones de tipo, indica el final de una sección de definiciones de miembros. En la sintaxis detallada, se usa para especificar el final de un bloque de código que comienza con la palabra clave begin . |
exception |
Control de excepciones Tipos de excepción |
Se usa para declarar un tipo de excepción. |
extern |
Funciones externas | Indica que un elemento de programa declarado está definido en otro binario o ensamblado. |
false |
Tipos primitivos | Se usa como literal booleano. |
finally |
Exceptions: The try...finally Expression (Excepciones: la expresión try...finally ) |
Se usa junto con try para incluir un bloque de código que se ejecuta independientemente de que se produzca una excepción. |
fixed |
Fijo | Se usa para "anclar" un puntero en la pila con el fin de evitar que se recolecte como elemento no utilizado. |
for |
Bucles: expresión for...to Bucles: expresión for...in |
Se usa en construcciones de bucle. |
fun |
Expresiones lambda: palabra clave fun |
Se usa en expresiones lambda, que también se conocen como funciones anónimas. |
function |
Expresiones de coincidencia Expresiones lambda: palabra clave fun |
Se usa como alternativa abreviada a la palabra clave fun y una expresión match en una expresión lambda que tiene coincidencia de patrones en un solo argumento. |
global |
Espacios de nombres | Se usa para hacer referencia al espacio de nombres .NET de nivel superior. |
if |
Expresiones condicionales: if...then...else |
Se usa en construcciones de creación de ramas condicional. |
in |
Bucles: expresión for...in Sintaxis detallada |
Se usa para las expresiones de secuencia y, en la sintaxis detallada, para separar las expresiones de los enlaces. |
inherit |
Herencia | Se usa para especificar una clase base o una interfaz base. |
inline |
Funciones Funciones insertadas |
Se usa para indicar una función que debe integrarse directamente en el código del llamador. |
interface |
Interfaces | Se usa para declarar e implementar interfaces. |
internal |
Control de acceso | Se usa para especificar que un miembro está visible dentro de un ensamblado, pero no fuera de él. |
lazy |
Expresiones diferidas | Se usa para especificar una expresión que debe realizarse únicamente cuando se necesita un resultado. |
let |
Enlaces let |
Se usa para asociar o enlazar un nombre a un valor o una función. |
let! |
Expresiones asincrónicas Expresiones de tarea Expresiones de cálculo |
Se usa en expresiones asincrónicas para enlazar un nombre al resultado de un cálculo asincrónico. En otras expresiones de cálculo, se usa para enlazar un nombre a un resultado, que es de tipo de cálculo. |
match |
Expresiones de coincidencia | Se usa para crear una rama mediante la comparación de un valor con un patrón. |
match! |
Expresiones de cálculo | Se usa para insertar una llamada a una expresión de cálculo y una coincidencia de patrones en su resultado. |
member |
Miembros | Se usa para declarar una propiedad o un método en un tipo de objeto. |
module |
Módulos | Se usa para asociar un nombre a un grupo de tipos, valores y funciones relacionados, a fin de separarlo de forma lógica del resto del código. |
mutable |
Enlaces let | Se usa para declarar una variable, es decir, un valor que se puede cambiar. |
namespace |
Espacios de nombres | Se usa para asociar un nombre a un grupo de módulos y tipos relacionados, a fin de separarlo de forma lógica del resto del código. |
new |
Constructores Restricciones |
Se usa para declarar, definir o invocar un constructor que crea o puede crear un objeto. También se usa en restricciones de parámetros genéricos para indicar que un tipo debe tener un constructor determinado. |
not |
Referencia de símbolos y operadores Restricciones |
No es una palabra clave propiamente dicha. Aun así, se usa la combinación not struct como restricción de parámetro genérico. |
null |
Valores NULL Restricciones |
Indica la ausencia de un objeto. También se usa en restricciones de parámetros genéricos. |
of |
Uniones discriminadas Delegados Tipos de excepción |
Se usa en las uniones discriminadas para indicar el tipo de las categorías de valores, así como en declaraciones de delegado y de excepción. |
open |
Declaraciones de importación: la palabra clave open |
Se usa para que el contenido de un espacio de nombres o de un módulo esté disponible sin tener que especificar el nombre completo. |
or |
Referencia de símbolos y operadores Restricciones |
Se usa con condiciones booleanas como un operador or booleano. Equivalente a ||.También se usa en restricciones de miembro. |
override |
Miembros | Se usa para implementar una versión de un método abstracto o virtual que se diferencia de la versión base. |
private |
Control de acceso | Restringe el acceso a un miembro a código del mismo tipo o módulo. |
public |
Control de acceso | Permite el acceso a un miembro desde fuera del tipo. |
rec |
Funciones | Se usa para indicar que una función es recursiva. |
return |
Expresiones de cálculo Expresiones asincrónicas Expresiones de tarea |
Se usa para indicar un valor que se va a proporcionar como resultado de una expresión de cálculo. |
return! |
Expresiones de cálculo Expresiones asincrónicas Expresiones de tarea |
Se usa para indicar una expresión de cálculo que, cuando se evalúa, proporciona el resultado de la expresión de cálculo contenedora. |
select |
Expresiones de consulta | Se usa en expresiones de consulta para especificar qué campos o columnas se van a extraer. Tenga en cuenta que es una palabra clave contextual, es decir, no es una palabra reservada en realidad y actúa solo como palabra clave en el contexto adecuado. |
static |
Miembros | Se usa para indicar un método o una propiedad que se puede llamar sin ninguna instancia de un tipo, o un miembro de valor que comparten todas las instancias de un tipo. |
struct |
Structs Tuplas Restricciones |
Se usa para declarar un tipo de estructura. Se usa para especificar una tupla de estructura. También se usa en restricciones de parámetros genéricos. Se usa en las definiciones de módulo por motivos de compatibilidad con OCaml. |
then |
Expresiones condicionales: if...then...else Constructores |
Se usa en expresiones condicionales. También se usa para generar efectos secundarios después de la construcción de objetos. |
to |
Bucles: expresión for...to |
Se usa en bucles for para indicar un intervalo. |
true |
Tipos primitivos | Se usa como literal booleano. |
try |
Excepciones: expresión try...with Excepciones: expresión try...finally |
Se usa para incluir un bloque de código que puede generar una excepción. Se usa junto con with o finally . |
type |
Tipos en F# Clases Registros Structs Enumeraciones Uniones discriminadas Abreviaturas de tipo Unidades de medida |
Se usa para declarar una clase, un registro, una estructura, una unión discriminada, un tipo de enumeración, una unidad de medida o una abreviatura de tipo. |
upcast |
Conversiones | Se usa para realizar la conversión a un tipo situado en un nivel superior de la cadena de herencia. |
use |
Administración de recursos: use Palabra clave |
Se usa en lugar de let para los valores que requieren llamar a Dispose para liberar recursos. |
use! |
Expresiones de cálculo Expresiones asincrónicas Expresiones de tarea |
Se usa en lugar de let! en expresiones asincrónicas y otras expresiones de cálculo para los valores que requieren llamar a Dispose para liberar recursos. |
val |
Campos explícitos: palabra clave val Firmas Miembros |
Se usa en una signatura para indicar un valor o en un tipo para declarar un miembro, en situaciones muy concretas. |
void |
Tipos primitivos | Indica el tipo void de .NET. Se usa al interoperar con otros lenguajes .NET. |
when |
Restricciones | Se usa para condiciones booleanas (restricciones when) en coincidencias de patrones y para introducir una cláusula de restricción de un parámetro de tipo genérico. |
while |
Bucles: expresión while...do |
Incluye una construcción de bucle. |
with |
Expresiones de coincidencia Expresiones de objeto Expresiones de registro de copia y actualización Extensiones de tipo Exceptions: The try...with Expression (Excepciones: la expresión try...with ) |
Se usa junto con la palabra clave match en expresiones de coincidencia de patrones. También se usa en expresiones de objeto, expresiones de copia de registros y extensiones de tipo para incluir definiciones de miembro y controladores de excepciones. |
yield |
Listas, matrices y secuencias | Se usa en una expresión de lista, matriz o secuencia a fin de generar un valor para una secuencia. Normalmente se puede omitir, ya que es implícito en la mayoría de las situaciones. |
yield! |
Expresiones de cálculo Expresiones asincrónicas Expresiones de tarea |
Se usa en una expresión de cálculo para anexar el resultado de una expresión de cálculo determinada a una colección de resultados para la expresión de cálculo contenedora. |
const |
Proveedores de tipos | Los proveedores de tipos permiten el uso de const como palabra clave para especificar un literal de constante como argumento de parámetro de tipo. |
Los siguientes tokens se reservan en F# porque son palabras clave en el lenguaje OCaml:
asr
land
lor
lsl
lsr
lxor
mod
sig
Si se usa la opción del compilador --mlcompatibility
, las palabras clave anteriores están disponibles para su uso como identificadores.
Los tokens siguientes se reservan como palabras clave para la expansión futura de F#:
break
checked
component
const
constraint
continue
event
external
include
mixin
parallel
process
protected
pure
sealed
tailcall
trait
virtual
Los tokens siguientes se reservaron en el pasado como palabras clave, pero se publicaron en F# 4.1, por lo que ahora pueden usarse como identificadores:
Palabra clave | Motivo |
---|---|
method |
Use member para introducir métodos. |
constructor |
Use new para introducir constructores. |
atomic |
Relacionado con la moda de la memoria transaccional que surgió en torno a 2006. Ahora sería una expresión de cálculo definida por la biblioteca. |
eager |
Ya no se necesita; inicialmente se diseñó para ser let eager con el fin de coincidir con un let lazy potencial. |
object |
No es necesario reservarlo. |
recursive |
Use rec . |
functor |
Si en F# se agregaran módulos parametrizados, se usaría module M(args) = ... . |
measure |
El atributo [<Measure>] es suficiente. |
volatile |
El atributo [<Volatile>] es suficiente. |