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 que es virtual y tiene una implementación predeterminada.
and let Enlaces

Registros

Miembros

Restricciones
Se usa en enlaces y registros mutuamente recursivos, en declaraciones de propiedades y con varias restricciones en parámetros genéricos.
as Clases

Coincidencia de patrones
Se usa para dar al objeto de clase actual un nombre de objeto. También se usa para dar un nombre a un patrón completo dentro de una coincidencia de patrón.
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 sintaxis detallada, indica el inicio de un bloque de código.
class Clases En 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 sintaxis detallada, indica el final de un bloque de código en una expresión de bucle.
downcast Conversiones Se usa para convertir a un tipo inferior en la cadena de herencia.
downto Bucles: expresión for...to En una for expresión, se usa al contar en orden inverso.
elif Expresiones condicionales: if...then...else Se usa en la bifurcación condicional. Forma corta de else if .
else Expresiones condicionales: if...then...else Se usa en la bifurcación condicional.
end Structs

Uniones discriminadas

Registros

Extensiones de tipo

Sintaxis detallada
En definiciones de tipo y extensiones de tipo, indica el final de una sección de definiciones de miembro.

En sintaxis detallada, se usa para especificar el final de un bloque de código que comienza con la palabra begin clave .
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 se define 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 try con para introducir un bloque de código que se ejecuta independientemente de si se produce una excepción.
fixed Fijo Se usa para "anclar" un puntero en la pila para evitar que se recolecte la recolección de elementos no utilizados.
for Bucles: expresión for...to

Bucles: expresión for...in
Se usa en construcciones de bucle.
fun Expresiones lambda: palabra fun clave Se usa en expresiones lambda, también conocidas como funciones anónimas.
function Expresiones de coincidencia

Expresiones lambda: palabra clave fun
Se usa como alternativa más corta a la palabra clave y una expresión en una expresión lambda que tiene coincidencia de fun patrones en un solo match argumento.
global Espacios de nombres Se usa para hacer referencia al espacio de nombres de .NET de nivel superior.
if Expresiones condicionales: if...then...else Se usa en construcciones de bifurcación condicional.
in Bucles: expresión for...in

Sintaxis detallada
Se usa para expresiones de secuencia y, en sintaxis detallada, para separar expresiones de enlaces.
inherit Herencia Se usa para especificar una clase base o interfaz base.
inline Funciones

Funciones insertadas
Se usa para indicar una función que se debe integrar directamente en el código del autor de la llamada.
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 se va a realizar solo cuando se necesita un resultado.
let let Enlaces Se usa para asociar o enlazar un nombre a un valor o 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 o, en otras expresiones de cálculo, se usa para enlazar un nombre a un resultado, que es del tipo de cálculo.
match Expresiones de coincidencia Se usa para bifurcar comparando un valor con un patrón.
match! Expresiones de cálculo Se usa para en línea una llamada a una expresión de cálculo y coincidencia de patrón 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 para separarlo lógicamente de otro 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 tipos y módulos relacionados, para separarlo lógicamente de otro código.
new Constructores

Restricciones
Se usa para declarar, definir o invocar un constructor que crea o que 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 realmente una palabra clave. Sin embargo, not struct en combinación se usa como restricción de parámetros genéricos.
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 uniones discriminadas para indicar el tipo de categorías de valores y en declaraciones de delegado y excepción.
open Declaraciones de importación: la palabra clave open Se usa para que el contenido de un espacio de nombres o módulo esté disponible sin calificación.
or Referencia de símbolos y operadores

Restricciones
Se usa con condiciones booleanas como 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 difiere de la versión base.
private Control de acceso Restringe el acceso a un miembro al 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 debe 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 que lo contiene.
select Expresiones de consulta Se usa en expresiones de consulta para especificar qué campos o columnas extraer. Tenga en cuenta que se trata de una palabra clave contextual, lo que significa que no es realmente una palabra reservada y solo actúa como una palabra clave en el contexto adecuado.
static Miembros Se usa para indicar un método o propiedad al que se puede llamar sin una instancia de un tipo o un miembro de valor que se comparte entre 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 para la compatibilidad con OCaml en las definiciones de módulo.
then Expresiones condicionales: if...then...else

Constructores
Se usa en expresiones condicionales.

También se usa para realizar efectos secundarios después de la construcción del objeto.
to Bucles: expresión for...to Se usa for en bucles 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 introducir un bloque de código que podría 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, registro, estructura, unión discriminada, tipo de enumeración, unidad de medida o abreviatura de tipo.
upcast Conversiones Se usa para convertir a un tipo que es superior en la cadena de herencia.
use Administración de recursos: usePalabra clave Se usa en lugar let de para los valores que requieren que se llame a para liberar Dispose recursos.
use! Expresiones de cálculo

Expresiones asincrónicas

Expresiones de tarea
Se usa en lugar de en expresiones asincrónicas y otras expresiones de cálculo para los valores que requieren que se let! llame a para liberar Dispose recursos.
val Campos explícitos: palabra clave val

Firmas

Miembros
Se usa en una firma para indicar un valor, o en un tipo para declarar un miembro, en situaciones limitadas.
void Tipos primitivos Indica el tipo de void .NET. Se usa al interoperar con otros lenguajes .NET.
when Restricciones Se usa para condiciones booleanas ( cuando protege ) en coincidencias de patrones y para introducir una cláusula de restricción para un parámetro de tipo genérico.
while Bucles: expresión while...do Presenta 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 match palabra clave en expresiones de coincidencia de patrones. También se usa en expresiones de objeto, expresiones de copia de registros y extensiones de tipo para introducir definiciones de miembro e introducir controladores de excepciones.
yield Enumera, Matrices, Secuencias Se usa en una expresión de lista, matriz o secuencia para generar un valor para una secuencia. Normalmente se puede omitir, ya que está 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 que lo contiene.
const Proveedores de tipos Los proveedores de tipos permiten el uso de const como palabra clave para especificar un literal 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 usa la opción --mlcompatibility del compilador, 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 una vez como palabras clave, pero se publicaron en F# 4.1, por lo que ahora puede usarlos como identificadores:

Palabra clave Motivo
method la comunidad de F# está contenta member con la introducción de métodos
constructor la comunidad de F# está contenta new con la introducción de constructores
atomic esto estaba relacionado con la fachada de la memoria transaccional de 2006. En F#, esto sería ahora una expresión de cálculo definida por la biblioteca
eager ya no es necesario, se diseñó inicialmente para que coincida let eager con un potencial let lazy
object no es necesario reservar esta
recursive F# está satisfecho con el uso rec
functor Si F# agrega módulos parametrizados, usaríamos module M(args) = ...
measure No hay ninguna razón específica para reservar esto en estos días, el [<Measure>] atributo es suficiente
volatile No hay ninguna razón específica para reservar esto en estos días, el [<Volatile>] atributo es suficiente

Vea también