Compartilhar via


Referência de palavra-chave

Este tópico contém links para informações sobre todas as palavras-chave da linguagem 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 Descrição
abstract Membros

classes abstratas
Indica um método que não tem nenhuma implementação no tipo no qual ele é declarado ou que é virtual e tem uma implementação padrão.
and let Associações

Registros

Membros

Restrições
Usado em associaçõ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 Declaraçõ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 Na sintaxe detalhada, indica o início de um bloco de código.
class Classes Na sintaxe detalhada, indica o início de uma definição de classe.
default Membros Indica uma implementação de um método abstrato; usado junto com uma declaração de método abstrato para criar um método virtual.
delegate Representantes Usado para declarar um delegado.
do fazer associações

Loops: for...to Expressão

Loops: for...in Expressão

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

Uniões discriminadas

Registros

Extensões de tipo

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

Na 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 booliano.
finally Exceções: a try...finally expressão Usado em conjunto para try introduzir um bloco de código que é executado independentemente de ocorrer uma exceção.
fixed Corrigido Usado para "fixar" um ponteiro na pilha para impedir que ele seja coletado.
for Loops: for...to Expressão

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

Expressões Lambda: A palavra-chave divertida
Usado como uma alternativa mais curta à 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 Usado para fazer referência ao namespace .NET de nível superior.
if Expressões condicionais: if...then...else Usado em constructos de ramificação condicional.
in Loops: para... na expressão

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

Funções Embutidas
Usada para indicar uma função que deve ser integrada diretamente ao código do chamador.
interface Interfaces Usado para declarar e implementar interfaces.
internal Controle de acesso Usado para especificar que um membro está visível dentro de um assembly, mas não fora dele.
lazy Expressões lentas Usado para especificar uma expressão que deve ser executada somente quando um resultado é necessário.
let let Associações Usado para associar ou associar um nome a um valor ou função.
let! Expressões assíncronas

Expressões de tarefa

Expressões de computação
Usado em expressões assíncronas para associar um nome ao resultado de uma computação assíncrona ou, em outras expressões de computação, usado para associar um nome a um resultado, que é do tipo de computação.
match Expressões de correspondência Usado para ramificar comparando um valor a um padrão.
match! Expressões de computação Usado para integrar 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 permitir associações Usado para declarar uma variável, ou seja, um valor que pode ser alterado.
namespace Namespaces 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âmetro genérico para indicar que um tipo deve ter um determinado construtor.
not Referência de símbolo e operador

Restrições
Na verdade, não é uma palavra-chave. No entanto, not struct a combinação é usada 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âmetro genérico.
of Uniões discriminadas

Representantes

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

Restrições
Usado com condições boolianas como um operador booliano or . Equivalente a ||.

Também usado em restrições de membro.
override Membros Usado para implementar uma versão de um método abstrato ou virtual que difere da versão base.
private Controle de acesso Restringe o acesso a um membro ao código no mesmo tipo ou módulo.
public Controle 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 de computação

Expressões assíncronas

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

Expressões assíncronas

Expressões de tarefa
Usada para indicar uma expressão de computação que, quando avaliada, fornece o resultado da expressão de computação que contém.
select Expressões de consulta Usado em expressões de consulta para especificar quais campos ou colunas extrair. Observe que essa é uma palavra-chave contextual, o que significa que ela não é realmente uma palavra reservada e atua apenas 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 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 de struct.

Também usado em restrições de parâmetro genérico.

Usado para compatibilidade com 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 booliano.
try Exceções: a tentativa... com Expressão

Exceções: a tentativa... expressão finally
Usado para introduzir um bloco de código que pode gerar uma exceção. Usado junto com with ou finally.
type F# Tipos

Classes

Registros

Estruturas

Enumerations

Uniões discriminadas

Abreviações de tipo

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

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 exigem Dispose ser chamados para recursos livres.
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 boolianas (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 Apresenta 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

Interfaces

Propriedades
Usado junto 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, extensões de tipo para introduzir definições de membro, manipuladores de exceção, implementações de interface e declarações de propriedades com getters e setters explícitos.
yield Listas, matrizes, sequências Usado em uma lista, matriz ou expressão de 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 de computação

Expressões assíncronas

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

Os tokens a seguir 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 opção --mlcompatibility do compilador, as palavras-chave acima estarão disponíveis para uso como identificadores.

Os tokens a seguir são reservados como palavras-chave para a expansão futura de F#:

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

Os tokens a seguir já foram reservados como palavras-chave, mas foram lançados no F# 4.1, portanto, agora você pode usá-los como identificadores:

Palavra-chave Motivo
method Use member para introduzir métodos.
constructor Use new para introduzir construtores.
atomic Relacionado à moda da memória transacional por volta de 2006. Agora, essa seria uma expressão de computação definida pela biblioteca.
eager Não é mais necessário; inicialmente foi projetado para corresponder let eager a um potencial let lazy.
object Não há necessidade de reservar isso.
recursive Use rec.
functor Se f# adicionasse módulos parametrizados, você usaria module M(args) = ....
measure Os [<Measure>] atributos são suficientes.
volatile Os [<Volatile>] atributos são suficientes.

Consulte também