Referência de palavras-chave
Este tópico contém links para informações sobre todas as palavras-chave da linguagem F#.
Tabela de palavras-chave de F#
A tabela a seguir mostra todas as palavras-chave de F# em ordem alfabética com breves descrições e links para tópicos relevantes com mais informações.
Palavra-chave | Link | Descrição |
---|---|---|
abstract |
Membros Classes Abstratas |
Indica um método que não possui implementação no tipo em que é declarado ou que é virtual e possui uma implementação padrão. |
and |
let AssociaçõesRegistros Membros Restrições |
É possível usar em associações e registros mutuamente recursivos, em declarações de propriedade e com diversas restrições em parâmetros genéricos. |
as |
Classes Correspondência padrão |
É possível usar para dar ao objeto de classe atual um nome de objeto. Também é possível usar para dar um nome a um padrão inteiro dentro de uma correspondência de padrões. |
assert |
Asserções | É possível usar para verificar o código durante a depuração. |
base |
Classes Herança |
É possível usar 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 e é possível usar com uma declaração de método abstrato para criar um método virtual. |
delegate |
Representantes | É possível usar para declarar um representante. |
do |
Associações do Loops: for...to expressãoLoops: for...in expressãoLoops: while...do expressão |
É possível usar em constructos de loop ou para executar códigos imperativos. |
done |
Sintaxe detalhada | Na sintaxe detalhada, indica o fim de um bloco de código em uma expressão de loop. |
downcast |
Conversões cast e conversões | É possível usar para a conversão em um tipo inferior na cadeia de herança. |
downto |
Loops: for...to expressão |
Em uma expressão for , é possível usar ao contar regressivamente. |
elif |
Expressões condicionais: if...then...else |
É possível usar na ramificação condicional. Forma abreviada de else if . |
else |
Expressões condicionais: if...then...else |
É possível usar 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 final de uma seção de definições de membro. Na sintaxe detalhada, é possível usar para especificar o final de um bloco de código que começa com a palavra-chave begin . |
exception |
Tratamento de exceção Tipos de Exceção |
É possível usar para declarar um tipo de exceção. |
extern |
Funções externas | Indica que um elemento de programa declarado está definido em outro binário ou assembly. |
false |
Tipos primitivos | É possível usar como um literal booliano. |
finally |
Exceções: a expressão try...finally |
É possível usar com try para introduzir um bloco de código que é executado independentemente de uma exceção. |
fixed |
Fixo | É possível usar para "fixar" um ponteiro na pilha a fim de evitar a coleta de lixo. |
for |
Loops: for...to expressãoLoops: expressão for...in |
É possível usar em constructos de loop. |
fun |
Expressões lambda: a palavra-chave fun |
É possível usar em expressões lambda, também conhecidas como funções anônimas. |
function |
Expressões de correspondência Expressões lambda: a palavra-chave fun |
É possível usar como uma alternativa mais curta para a palavra-chave fun e uma expressão match em uma expressão lambda com correspondência de padrões em um único argumento. |
global |
Namespaces | É possível usar para referenciar o namespace .NET de nível superior. |
if |
Expressões condicionais: if...then...else |
É possível usar em constructos de ramificação condicional. |
in |
Loops: expressão for...in Sintaxe detalhada |
É possível usar para expressões de sequência e, em sintaxe detalhada, para separar expressões de associações. |
inherit |
Herança | É possível usar para especificar uma classe base ou interface base. |
inline |
Funções Funções Embutidas |
É possível usar para indicar uma função que deve ser integrada diretamente no código do chamador. |
interface |
Interfaces | É possível usar para declarar e implementar interfaces. |
internal |
Controle de acesso | É possível usar para especificar que um membro é visível dentro de um assembly, mas não fora. |
lazy |
Expressões lentas | É possível usar para especificar uma expressão que deve ser executada somente quando um resultado for necessário. |
let |
let Associações |
É possível usar para associar um nome a uma função ou valor. |
let! |
Expressões assíncronas Expressões de tarefa Expressões de computação |
É possível usar 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, para associar um nome a um resultado, que é do tipo de computação. |
match |
Expressões de correspondência | É possível usar para branches comparando um valor com um padrão. |
match! |
Expressões de computação | É possível usar para embutir uma chamada em uma expressão de computação e em uma correspondência de padrões no resultado. |
member |
Membros | É possível usar para declarar uma propriedade ou método em um tipo de objeto. |
module |
Módulos | É possível usar para associar um nome a um grupo de tipos, valores e funções relacionados, a fim de separá-lo logicamente de outro código. |
mutable |
Associações let | É possível usar para declarar uma variável, ou seja, um valor que pode ser alterado. |
namespace |
Namespaces | É possível usar para associar um nome a um grupo de tipos e módulos relacionados, a fim de separá-lo logicamente de outro código. |
new |
Construtores Restrições |
É possível usar para declarar, definir ou invocar um construtor que cria ou pode criar um objeto. Também é possível usar em restrições de parâmetros genéricos para indicar que um tipo deve ter um determinado construtor. |
not |
Referência de símbolos e operadores Restrições |
Não é uma palavra-chave. No entanto, not struct é usado em combinação como uma restrição de parâmetro genérico. |
null |
Valores nulos Restrições |
Indica a ausência de um objeto. Também é possível usar em restrições de parâmetros genéricos. |
of |
Uniões discriminadas Representantes Tipos de Exceção |
É possível usar em uniões discriminadas para indicar o tipo de categorias de valores e em declarações de representante e exceção. |
open |
Declarações de Importação: a palavra-chave open |
É possível usar para disponibilizar o conteúdo de um namespace ou módulo sem qualificação. |
or |
Referência de símbolos e operadores Restrições |
É possível usar com condições boolianas como um operador or booliano. Equivalente a ||.Também é possível usar em restrições de membro. |
override |
Membros | É possível usar 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 para códigos do mesmo tipo ou módulo. |
public |
Controle de acesso | Permite o acesso a um membro de fora do tipo. |
rec |
Funções | É possível usar para indicar que uma função é recursiva. |
return |
Expressões de computação Expressões assíncronas Expressões de tarefa |
É possível usar 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 |
É possível usar para indicar uma expressão de computação que, quando avaliada, fornece o resultado da expressão de computação contida. |
select |
Expressões de Consulta | É possível usar em expressões de consulta para especificar quais campos ou colunas extrair. Observe que esta é uma palavra-chave contextual, o que significa que ela não é realmente uma palavra reservada e que só funciona como uma palavra-chave no contexto apropriado. |
static |
Membros | É possível usar 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 |
É possível usar para declarar um tipo de estrutura. É possível usar para especificar uma tupla de struct. Também é possível usar em restrições de parâmetros genéricos. É possível usar para compatibilidade com OCaml em definições de módulo. |
then |
Expressões condicionais: if...then...else Construtores |
É possível usar em expressões condicionais. Também é possível usar para realizar efeitos colaterais após a construção de objeto. |
to |
Loops: for...to expressão |
É possível usar em loops for para indicar um intervalo. |
true |
Tipos primitivos | É possível usar como um literal booliano. |
try |
Exceções: a expressão try...with Exceções: a expressão try...finally |
É possível usar para introduzir um bloco de código que pode gerar uma exceção. É possível usar com with ou finally . |
type |
Tipos F# Classes Registros Estruturas Enumerações Uniões discriminadas Abreviações de tipo Unidades de Medida |
É possível usar para declarar uma classe, um registro, uma estrutura, uma união discriminada, um tipo de enumeração, uma unidade de medida ou uma abreviação de tipo. |
upcast |
Conversões cast e conversões | É possível usar para a conversão em um tipo que é superior na cadeia de herança. |
use |
Gerenciamento de Recursos: a palavra-chave use |
É possível usar no lugar de let para valores que precisam que Dispose seja chamado a fim de liberar recursos. |
use! |
Expressões de computação Expressões assíncronas Expressões de tarefa |
É possível usar no lugar de let! em expressões assíncronas e em outras expressões de computação para valores que precisam que Dispose seja chamado a fim de liberar recursos. |
val |
Campos Explícitos: a val Palavra-ChaveAssinaturas Membros |
É possível usar 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 . É possível usar ao interoperar com outras linguagens .NET. |
when |
Restrições | É possível usar para condições boolianas (when guards) 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 um constructo de loop. |
with |
Expressões de correspondência Expressões de objeto Copiar e atualizar expressões de registro Extensões de tipo Exceções: a expressão try...with |
É possível usar com a palavra-chave match em expressões de correspondência de padrões. Também é possível usar em expressões de objeto, expressões de cópia de registro e extensões de tipo para introduzir definições de membros e manipuladores de exceção. |
yield |
Listas, Matrizes, Sequências | É possível usar em uma lista, matriz ou expressão de sequência a fim de produzir um valor para uma sequência. Normalmente, é possível omitir, pois está implícito na maioria das situações. |
yield! |
Expressões de computação Expressões assíncronas Expressões de tarefa |
É possível usar 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 de computação contida. |
const |
Provedores de tipos | Os provedores de tipo permitem o uso de const como palavra-chave para especificar um literal constante como um argumento de parâmetro de 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
Ao usar a opção do compilador --mlcompatibility
, 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 de 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 liberados na F# 4.1, portanto, agora é possível usá-los como identificadores:
Palavra-chave | Motivo |
---|---|
method |
Use member para introduzir métodos. |
constructor |
Use new para introduzir constructos. |
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 ser let eager para corresponder a um possível let lazy . |
object |
Não há necessidade de reservar. |
recursive |
Use rec . |
functor |
Se F# adicionasse módulos parametrizados, você usaria module M(args) = ... . |
measure |
O atributo [<Measure>] é suficiente. |
volatile |
O atributo [<Volatile>] é suficiente. |