Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo inclui tabelas que descrevem os símbolos e operadores usados em F# e fornece uma breve descrição de cada um. Alguns símbolos e operadores têm duas ou mais entradas quando usados em várias funções.
Comentário, diretiva do compilador e símbolos de atributo
A tabela a seguir descreve símbolos relacionados a comentários, diretivas do compilador e atributos.
| Símbolo ou operador | Links | Descrição |
|---|---|---|
(*...*) |
Delimita um comentário que pode abranger várias linhas. | |
// |
Indica o início de um comentário de linha única. | |
/// |
Documentação XML | Indica um comentário XML. |
# |
Diretivas do compilador | Prefixa uma diretiva de pré-processador ou compilador. |
[<...>] |
Atributos | Delimita um atributo. |
Símbolos de cadeia de caracteres e identificador
A tabela a seguir descreve símbolos relacionados a cadeias de caracteres.
| Símbolo ou operador | Links | Descrição |
|---|---|---|
" |
Cadeias de caracteres | Delimita uma cadeia de caracteres de texto. |
@" |
Cadeias de caracteres | Inicia uma cadeia de caracteres de texto verbatim, que pode incluir cílios invertidas e outros caracteres. |
""" |
Cadeias de caracteres | Delimita uma cadeia de caracteres de texto com aspas triplas, que pode incluir barras invertidas, aspas duplas e outros caracteres. |
$" |
Cadeias de caracteres interpoladas | Inicia uma cadeia de caracteres interpolada. |
' |
literais | Delimita um literal de caractere único. |
``...`` |
Delimita um identificador que, de outra forma, não seria um identificador legal, como uma palavra-chave de linguagem. | |
\ |
Cadeias de caracteres | Escapa do próximo caractere; usado em literais de caractere e cadeia de caracteres. |
Operadores aritméticos
A tabela a seguir descreve os operadores aritméticos.
| Símbolo ou operador | Links | Descrição |
|---|---|---|
+ |
Operadores aritméticos |
|
- |
Operadores aritméticos |
|
* |
Operadores aritméticos Tuplas Unidades de Medida |
|
/ |
Operadores aritméticos Unidades de Medida |
|
% |
Operadores aritméticos | Calcula o restante inteiro. |
** |
Operadores aritméticos | Calcula a operação de exponencialização (x ** y significa x para o poder de y). |
Operadores de comparação
A tabela a seguir descreve os operadores de comparação.
| Símbolo ou operador | Links | Descrição |
|---|---|---|
< |
Operadores aritméticos | Calcula a operação menor que. |
<> |
Operadores aritméticos | Retorna true se o lado esquerdo não for igual ao lado direito; caso contrário, retornará false. |
<= |
Operadores aritméticos | Retorna true se o lado esquerdo for menor ou igual ao lado direito; caso contrário, retornará false. |
= |
Operadores aritméticos | Retorna true se o lado esquerdo for igual ao lado direito; caso contrário, retornará false. |
> |
Operadores aritméticos | Retorna true se o lado esquerdo for maior que o lado direito; caso contrário, retornará false. |
>= |
Operadores aritméticos | Retorna true se o lado esquerdo for maior ou igual ao lado direito; caso contrário, retornará false. |
Operadores booleanos
A tabela a seguir descreve os símbolos de operadores aritméticos e boolianos.
| Símbolo ou operador | Links | Descrição |
|---|---|---|
&& |
Operadores Boolianos | Calcula a operação AND booliana. |
|| |
Operadores Boolianos | Calcula a operação OR booliana. |
Operadores bit a bit
A tabela a seguir descreve operadores bit a bit.
Símbolos e operadores de função
A tabela a seguir descreve os operadores e símbolos relacionados às funções.
| Símbolo ou operador | Links | Descrição |
|---|---|---|
-> |
Funções | Em expressões de função, separa o padrão de entrada da expressão de saída. |
|> |
Funções | Passa o resultado do lado esquerdo para a função no lado direito (operador de pipe para frente). |
||> |
( ||> )<'T1,'T2,'U> Function | Passa a tupla de dois argumentos no lado esquerdo para a função no lado direito. |
|||> |
( |||> )<'T1,'T2,'T3,'U> Function | Passa a tupla de três argumentos no lado esquerdo para a função no lado direito. |
>> |
Funções | Compõe duas funções (operador de composição de encaminhamento). |
<< |
Funções | Compõe duas funções em ordem inversa; o segundo é executado primeiro (operador de composição para trás). |
<| |
Funções | Passa o resultado da expressão no lado direito para a função no lado esquerdo (operador de pipe para trás). |
<|| |
( <|| )<' T1,'T2,'Função U> | Passa a tupla de dois argumentos no lado direito para a função no lado esquerdo. |
<||| |
( <||| )<' T1,'T2,'T3,'U> Function | Passa a tupla de três argumentos no lado direito para a função no lado esquerdo. |
Digitar símbolos e operadores
A tabela a seguir descreve símbolos relacionados a anotações de tipo e testes de tipo.
| Símbolo ou operador | Links | Descrição |
|---|---|---|
-> |
Funções | Em tipos de função, delimita argumentos e valores retornados, também gera um resultado em expressões de sequência. |
: |
Funções | Em uma anotação de tipo, separa um parâmetro ou nome de membro de seu tipo. |
:> |
Conversões e conversões | Converte um tipo em tipo mais alto na hierarquia. |
:? |
Expressões de correspondência | Retorna true se o valor corresponder ao tipo especificado (incluindo se for um subtipo); caso contrário, retornará false (operador de teste de tipo). |
:?> |
Conversões e conversões | Converte um tipo em um tipo inferior na hierarquia. |
# |
Tipos flexíveis | Quando usado com um tipo, indica um tipo flexível, que se refere a um tipo ou qualquer um de seus tipos derivados. |
' |
Generalização Automática | Indica um parâmetro de tipo genérico. |
<...> |
Generalização Automática | Delimita parâmetros de tipo. |
^ |
Parâmetros de tipo resolvidos estaticamente Cadeias de caracteres |
|
{} |
Classe ou registro | Quando usado com a type palavra-chave, delimita uma classe ou registro. O tipo é uma classe quando os membros são declarados ou a class palavra-chave é usada. Caso contrário, é um registro. |
{||} |
Registro anônimo | Denota um registro anônimo |
Símbolos usados em expressões de pesquisa e fatia de membro
A tabela a seguir descreve símbolos adicionais usados em expressões de pesquisa e fatia de membro.
| Símbolo ou operador | Links | Descrição |
|---|---|---|
. |
Membros | Acessa um membro e separa nomes individuais em um nome totalmente qualificado. |
[...] ou .[...] |
Matrizes Propriedades indexadas Expressões de fatia |
Indexa em uma matriz, cadeia de caracteres ou coleção ou usa uma fatia de uma coleção. |
Símbolos usados em tupla, lista, matriz, expressões de unidade e padrões
A tabela a seguir descreve símbolos relacionados a tuplas, listas, valores de unidade e matrizes.
| Símbolo ou operador | Links | Descrição |
|---|---|---|
( ) |
Tipo de unidade | Representa o valor único do tipo de unidade. |
, |
Tuplas | Separa os elementos de uma tupla ou parâmetros de tipo. |
:: |
Listas Expressões de correspondência |
|
@ |
Listas | Concatena duas listas. |
[...] |
Listas | Delimita os elementos de uma lista. |
[|...|] |
Matrizes | Delimita os elementos de uma matriz. |
Símbolos usados em expressões imperativas
A tabela a seguir descreve símbolos adicionais usados em expressões.
| Símbolo ou operador | Links | Descrição |
|---|---|---|
<- |
Valores | Atribui um valor a uma variável. |
; |
Sintaxe detalhada |
Separa expressões (usadas principalmente em sintaxe detalhada). Também separa elementos de uma lista ou campos de um registro. |
Símbolos adicionais usados em sequências e expressões de computação
A tabela a seguir descreve símbolos adicionais usados em sequências e expressões de computação.
| Símbolo ou operador | Links | Descrição |
|---|---|---|
-> |
Sequências | Produz uma expressão (em expressões de sequência); equivalente às do yield palavras-chave. |
! |
Expressões de computação | Após uma palavra-chave, indica uma versão modificada do comportamento da palavra-chave, conforme controlado por uma expressão de computação. |
Símbolos adicionais usados em padrões de correspondência
A tabela a seguir descreve símbolos relacionados à correspondência de padrões.
| Símbolo ou operador | Links | Descrição |
|---|---|---|
-> |
Expressões de correspondência | Usado em expressões de correspondência. |
& |
Correspondência de padrões |
|
_ |
Expressões de correspondência Genéricos |
|
| |
Expressões de correspondência | Delimita casos de correspondência individuais, casos de união discriminados individuais e valores de enumeração. |
Símbolos adicionais usados em declarações
A tabela a seguir descreve símbolos relacionados a declarações.
| Símbolo ou operador | Links | Descrição |
|---|---|---|
(|...|) |
Padrões ativos | Delimita um nome de padrão ativo. Também chamado de clipes de banana. |
? |
Parâmetros e argumentos | Especifica um argumento opcional. |
~~ |
Sobrecarga de operador | Usado para declarar uma sobrecarga para o operador de negação unário. |
~- |
Sobrecarga de operador | Usado para declarar uma sobrecarga para o operador unário de subtração. |
~+ |
Sobrecarga de operador | Usado para declarar uma sobrecarga para o operador de adição unário. |
Símbolos adicionais usados entre aspas
A tabela a seguir descreve símbolos relacionados às aspas de código.
| Símbolo ou operador | Links | Descrição |
|---|---|---|
<@...@> |
Aspas de código | Delimita uma aspa de código tipada. |
<@@...@@> |
Aspas de código | Delimita uma aspa de código não tipada. |
% |
Aspas de código | Usado para associar expressões em aspas de código tipada. |
%% |
Aspas de código | Usado para associar expressões em aspas de código não tipados. |
Operadores de pesquisa dinâmica
A tabela a seguir descreve símbolos adicionais usados em expressões de pesquisa dinâmicas. Eles geralmente não são usados na programação F# de rotina e nenhuma implementação desses operadores é fornecida na biblioteca principal do F#.
| Símbolo ou operador | Links | Descrição |
|---|---|---|
? |
Usado como um operador para chamadas de propriedade e método dinâmico. | |
? ... <- ... |
Usado como um operador para definir propriedades dinâmicas. |
Operadores anuláveis em consultas
Operadores anuláveis são definidos para uso em Expressões de Consulta. A tabela a seguir mostra esses operadores.
| Símbolo ou operador | Links | Descrição |
|---|---|---|
%? |
Operadores anuláveis | Calcula o restante inteiro, quando o lado direito é um tipo anulável. |
*? |
Operadores anuláveis | Multiplica os lados esquerdo e direito, quando o lado direito é um tipo anulável. |
+? |
Operadores anuláveis | Adiciona os lados esquerdo e direito, quando o lado direito é um tipo anulável. |
-? |
Operadores anuláveis | Subtrai o lado direito do lado esquerdo, quando o lado direito é um tipo anulável. |
/? |
Operadores anuláveis | Divide o lado esquerdo pelo lado direito, quando o lado direito é um tipo anulável. |
<? |
Operadores anuláveis | Calcula o menor que a operação, quando o lado direito é um tipo anulável. |
<>? |
Operadores anuláveis | Calcula a operação "não igual" quando o lado direito é um tipo anulável. |
<=? |
Operadores anuláveis | Calcula a operação "menor ou igual a" quando o lado direito é um tipo anulável. |
=? |
Operadores anuláveis | Calcula a operação "igual" quando o lado direito é um tipo anulável. |
>? |
Operadores anuláveis | Calcula a operação "maior que" quando o lado direito é um tipo anulável. |
>=? |
Operadores anuláveis | Calcula a operação "maior ou igual" quando o lado direito é um tipo anulável. |
?>=, ?>, ?<=, ?<, ?=, , ?<>, ?+, , ?-, ?*, ?/ |
Operadores anuláveis | Equivalente aos operadores correspondentes sem o ? prefixo, em que um tipo anulável está à esquerda. |
>=?, >?, <=?, <?, =?, , <>?, +?, , -?, *?, /? |
Operadores anuláveis | Equivalente aos operadores correspondentes sem o ? sufixo, em que um tipo anulável está à direita. |
?>=?, ?>?, ?<=?, ?<?, ?=?, , ?<>?, ?+?, , ?-?, ?*?, ?/? |
Operadores anuláveis | Equivalente aos operadores correspondentes sem os pontos de interrogação ao redor, em que ambos os lados são tipos anuláveis. |
Operadores de célula de referência (preteridos)
A tabela a seguir descreve símbolos relacionados a células de referência. O uso desses operadores gera mensagens de consultoria a partir do F# 6. Para obter mais informações, consulte As mensagens de consultoria de operação de célula de referência.
| Símbolo ou operador | Links | Descrição |
|---|---|---|
! |
Células de referência | Desreferencia uma célula de referência. |
:= |
Células de referência | Atribui um valor a uma célula de referência. |
Precedência do operador
A tabela a seguir mostra a ordem de precedência de operadores e outras palavras-chave de expressão em F#, em ordem da precedência mais baixa à precedência mais alta. Também está listada a associatividade, se aplicável.
| Operador | Capacidade de associação |
|---|---|
as |
Certo |
when |
Certo |
| (pipe) |
Esquerda |
; |
Certo |
let |
Nonassociative |
function, fun, , matchtry |
Nonassociative |
if |
Nonassociative |
not |
Certo |
-> |
Certo |
:= |
Certo |
, |
Nonassociative |
or, || |
Esquerda |
&, && |
Esquerda |
:>, :?> |
Certo |
<
op, >op, =, |op, &op, , &$(incluindo <<<, >>>, |||, ) &&& |
Esquerda |
^
Op(incluindo ^^^) |
Certo |
:: |
Certo |
:? |
Não associativo |
-
op, +op |
Aplica-se aos usos de infixo desses símbolos |
*
op, /op, %op |
Esquerda |
**
Op |
Certo |
f x (aplicativo de funções)(incluindo lazy x, assert x) |
Esquerda |
| (correspondência de padrão) |
Certo |
operadores de prefixo (+op, -op, %, %%,& , &&op!, ~op) |
Esquerda |
. |
Esquerda |
f(x) |
Esquerda |
f<
Tipos> |
Esquerda |
O F# dá suporte à sobrecarga de operador personalizado. Isso significa que você pode definir seus próprios operadores. Na tabela anterior, a operação pode ser qualquer sequência válida (possivelmente vazia) de caracteres de operador, internos ou definidos pelo usuário. Portanto, você pode usar essa tabela para determinar qual sequência de caracteres usar para um operador personalizado alcançar o nível de precedência desejado. Os caracteres principais . são ignorados quando o compilador determina a precedência.