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çõesRegistos 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ãoLoops: for...in ExpressãoLoops: 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ãoLoops: 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-chaveAssinaturas 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 |
rec Utilize. |
functor |
Se o F# adicionasse módulos parametrizados, você usaria module M(args) = ... o . |
measure |
O [<Measure>] atributo basta. |
volatile |
O [<Volatile>] atributo basta. |