Referência de palavra-chave

Este tópico contém links para informações sobre todas as palavras-chave do idioma F#.

Tabela de palavras-chave F#

A tabela a seguir mostra todas as palavras-chave F# em ordem alfabética, juntamente com breves descrições e links para tópicos relevantes que contêm mais informações.

Palavra-chave Ligação Description
abstract Membros

Aulas abstratas
Indica um método que não tem implementação no tipo em que é declarado ou que é virtual e tem uma implementação padrão.
and let Ligações

Registos

Membros

Restrições
Usado em ligações e registros mutuamente recursivos, em declarações de propriedade e com várias restrições em parâmetros genéricos.
as Classes

Correspondência de padrões
Usado para dar ao objeto de classe atual um nome de objeto. Também usado para dar um nome a um padrão inteiro dentro de uma correspondência de padrão.
assert Afirmações Usado para verificar o código durante a depuração.
base Classes

Herança
Usado como o nome do objeto de classe base.
begin Sintaxe Detalhada Em sintaxe detalhada, indica o início de um bloco de código.
class Classes Em sintaxe detalhada, indica o início de uma definição de classe.
default Membros Indica uma implementação de um método abstrato; usado juntamente com uma declaração de método abstrato para criar um método virtual.
delegate Delegados Usado para declarar um delegado.
do fazer Ligações

Loops: for...to Expressão

Loops: for...in Expressão

Loops: while...do Expressão
Usado em construções de looping ou para executar código imperativo.
done Sintaxe Detalhada Em sintaxe detalhada, indica o fim de um bloco de código em uma expressão em looping.
downcast Fundição e conversões Usado para converter em um tipo que é inferior na cadeia de herança.
downto Loops: for...to Expressão Em uma for expressão, usada ao contar ao contrário.
elif Expressões condicionais: if...then...else Usado em ramificação condicional. Uma forma curta de else if.
else Expressões condicionais: if...then...else Usado em ramificação condicional.
end Estruturas

Sindicatos discriminados

Registos

Extensões de tipo

Sintaxe Detalhada
Em definições de tipo e extensões de tipo, indica o final de uma seção de definições de membro.

Em sintaxe detalhada, usada para especificar o final de um bloco de código que começa com a begin palavra-chave.
exception Tratamento de exceções

Tipos de exceção
Usado para declarar um tipo de exceção.
extern Funções Externas Indica que um elemento de programa declarado é definido em outro binário ou assembly.
false Tipos primitivos Usado como um literal booleano.
finally Exceções: A try...finally expressão Usado em conjunto com try para introduzir um bloco de código que é executado independentemente de ocorrer uma exceção.
fixed Fixo Usado para "fixar" um ponteiro na pilha para evitar que ele seja coletado lixo.
for Loops: for...to Expressão

Loops: para... em Expressão
Usado em construções de looping.
fun Expressões do Lambda: A fun palavra-chave Usado em expressões lambda, também conhecidas como funções anônimas.
function Expressões de correspondência

Lambda Expressions: A palavra-chave divertida
Usado como uma alternativa mais curta para a fun palavra-chave e uma match expressão em uma expressão lambda que tem correspondência de padrão em um único argumento.
global Namespaces (Espaços de nomes) Usado para fazer referência ao namespace .NET de nível superior.
if Expressões condicionais: if...then...else Usado em construções de ramificação condicional.
in Loops: para... em Expressão

Sintaxe Detalhada
Usado para expressões de sequência e, em sintaxe detalhada, para separar expressões de ligações.
inherit Herança Usado para especificar uma classe base ou interface base.
inline Funções

Funções em linha
Usado para indicar uma função que deve ser integrada diretamente no código do chamador.
interface Interfaces Usado para declarar e implementar interfaces.
internal Controlo de Acesso Usado para especificar que um membro é visível dentro de um assembly, mas não fora dele.
lazy Expressões preguiçosas Usado para especificar uma expressão que deve ser executada somente quando um resultado é necessário.
let let Ligações Usado para associar, ou vincular, um nome a um valor ou função.
let! Expressões assíncronas

Expressões de tarefa

Expressões computacionais
Usado em expressões assíncronas para vincular um nome ao resultado de uma computação assíncrona ou, em outras expressões de computação, usado para vincular um nome a um resultado, que é do tipo de computação.
match Expressões de correspondência Usado para ramificar comparando um valor com um padrão.
match! Expressões computacionais Usado para inserir uma chamada a uma expressão de computação e correspondência de padrão em seu resultado.
member Membros Usado para declarar uma propriedade ou método em um tipo de objeto.
module Módulos Usado para associar um nome a um grupo de tipos, valores e funções relacionados, para separá-lo logicamente de outro código.
mutable deixar Ligações Usado para declarar uma variável, ou seja, um valor que pode ser alterado.
namespace Namespaces (Espaços de nomes) Usado para associar um nome a um grupo de tipos e módulos relacionados, para separá-lo logicamente de outro código.
new Construtores

Restrições
Usado para declarar, definir ou invocar um construtor que cria ou que pode criar um objeto.

Também usado em restrições de parâmetros genéricos para indicar que um tipo deve ter um determinado construtor.
not Símbolo e Referência do Operador

Restrições
Na verdade, não é uma palavra-chave. No entanto, not struct em combinação é usado como uma restrição de parâmetro genérico.
null Valores nulos

Restrições
Indica a ausência de um objeto.

Também usado em restrições de parâmetros genéricos.
of Sindicatos discriminados

Delegados

Tipos de exceção
Usado em uniões discriminadas para indicar o tipo de categorias de valores e em declarações de delegados e exceções.
open Declarações de importação: a open palavra-chave Usado para disponibilizar o conteúdo de um namespace ou módulo sem qualificação.
or Símbolo e Referência do Operador

Restrições
Usado com condições booleanas como um operador booleano or . Equivalente a ||.

Também usado em restrições de membros.
override Membros Usado para implementar uma versão de um método abstrato ou virtual que difere da versão base.
private Controlo de Acesso Restringe o acesso a um membro ao código no mesmo tipo ou módulo.
public Controlo de Acesso Permite o acesso a um membro de fora do tipo.
rec Funções Usado para indicar que uma função é recursiva.
return Expressões computacionais

Expressões assíncronas

Expressões de tarefa
Usado para indicar um valor a ser fornecido como resultado de uma expressão computacional.
return! Expressões computacionais

Expressões assíncronas

Expressões de tarefa
Usado para indicar uma expressão computacional que, quando avaliada, fornece o resultado da expressão computacional que a contém.
select Expressões de consulta Usado em expressões de consulta para especificar quais campos ou colunas extrair. Note que esta é uma palavra-chave contextual, o que significa que não é realmente uma palavra reservada e só age como uma palavra-chave no contexto apropriado.
static Membros Usado para indicar um método ou propriedade que pode ser chamado sem uma instância de um tipo, ou um membro de valor que é compartilhado entre todas as instâncias de um tipo.
struct Estruturas

Tuplas

Restrições
Usado para declarar um tipo de estrutura.

Usado para especificar uma tupla struct.

Também usado em restrições de parâmetros genéricos.

Usado para compatibilidade OCaml em definições de módulo.
then Expressões condicionais: if...then...else

Construtores
Usado em expressões condicionais.

Também usado para executar efeitos colaterais após a construção do objeto.
to Loops: for...to Expressão Usado em for loops para indicar um intervalo.
true Tipos primitivos Usado como um literal booleano.
try Exceções: A tentativa... com Expressão

Exceções: A tentativa... finalmente Expressão
Usado para introduzir um bloco de código que pode gerar uma exceção. Utilizado em conjunto com with ou finally.
type Tipos de F#

Classes

Registos

Estruturas

Enumerações

Sindicatos discriminados

Abreviaturas dos tipos

Unidades de medida
Usado para declarar uma classe, registro, estrutura, união discriminada, tipo de enumeração, unidade de medida ou abreviatura de tipo.
upcast Fundição e conversões Usado para converter em um tipo que é mais alto na cadeia de herança.
use Gerenciamento de recursos: a use palavra-chave Usado em vez de let para valores que precisam Dispose ser chamados para liberar recursos.
use! Expressões computacionais

Expressões assíncronas

Expressões de tarefa
Usado em vez de let! em expressões assíncronas e outras expressões de computação para valores que precisam Dispose ser chamados para liberar recursos.
val Campos explícitos: a val palavra-chave

Assinaturas

Membros
Usado em uma assinatura para indicar um valor, ou em um tipo para declarar um membro, em situações limitadas.
void Tipos primitivos Indica o tipo .NET void . Usado ao interoperar com outras linguagens .NET.
when Restrições Usado para condições booleanas (quando guardas) em correspondências de padrão e para introduzir uma cláusula de restrição para um parâmetro de tipo genérico.
while Loops: while...do Expressão Introduz uma construção de looping.
with Expressões de correspondência

Expressões de objeto

Copiar e atualizar expressões de registro

Extensões de tipo

Exceções: A try...with expressão
Usado em conjunto com a match palavra-chave em expressões de correspondência de padrões. Também usado em expressões de objeto, expressões de cópia de registro e extensões de texto para introduzir definições de membro e para introduzir manipuladores de exceção.
yield Listas, Matrizes, Sequências Usado em uma expressão de lista, matriz ou sequência para produzir um valor para uma sequência. Normalmente pode ser omitido, pois está implícito na maioria das situações.
yield! Expressões computacionais

Expressões assíncronas

Expressões de tarefa
Usado em uma expressão de computação para anexar o resultado de uma determinada expressão de computação a uma coleção de resultados para a expressão computacional que contém.
const Provedores de tipo Os provedores de tipo permitem o uso de como uma palavra-chave para especificar um literal constante como um argumento de parâmetro de const tipo.

Os seguintes tokens são reservados em F# porque são palavras-chave na linguagem OCaml:

  • asr
  • land
  • lor
  • lsl
  • lsr
  • lxor
  • mod
  • sig

Se você usar a --mlcompatibility opção de compilador, as palavras-chave acima estarão disponíveis para uso como identificadores.

Os seguintes tokens são reservados como palavras-chave para expansão futura do F#:

  • break
  • checked
  • component
  • const
  • constraint
  • continue
  • event
  • external
  • include
  • mixin
  • parallel
  • process
  • protected
  • pure
  • sealed
  • tailcall
  • trait
  • virtual

Os seguintes tokens já foram reservados como palavras-chave, mas foram lançados em F# 4.1, então agora você pode usá-los como identificadores:

Palavra-chave Razão
method Use member para introduzir métodos.
constructor Use new para introduzir construtores.
atomic Relacionado com a moda da memória transacional por volta de 2006. Esta seria agora uma expressão computacional definida pela biblioteca.
eager Não é mais necessário; foi inicialmente concebido para corresponder let eager a um potencial let lazy.
object Não há necessidade de reservar isso.
recursive recUtilize.
functor Se o F# adicionasse módulos parametrizados, você usaria module M(args) = ...o .
measure O [<Measure>] atributo basta.
volatile O [<Volatile>] atributo basta.

Consulte também