Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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 | Ligações | 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 identificadores
A tabela a seguir descreve símbolos relacionados a cadeias de caracteres.
| Símbolo ou operador | Ligações | Descrição |
|---|---|---|
" |
Strings | Delimita uma cadeia de caracteres de texto. |
@" |
Strings | Inicia uma cadeia de caracteres de texto literal, que pode incluir barras invertidas e outros caracteres. |
""" |
Strings | Delimita uma cadeia de texto com aspas triplas, que pode incluir barras invertidas, aspas duplas e outros caracteres. |
$" |
Cordas 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 idioma. | |
\ |
Strings | Escapa do próximo personagem; usado em literais de caracteres e strings. |
Operadores aritméticos
A tabela a seguir descreve os operadores aritméticos.
| Símbolo ou operador | Ligações | 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 número inteiro restante. |
** |
Operadores Aritméticos | Calcula a operação de exponenciaçã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 | Ligações | Descrição |
|---|---|---|
< |
Operadores Aritméticos | Calcula a operação menos que. |
<> |
Operadores Aritméticos | Retorna true se o lado esquerdo não for igual ao lado direito, caso contrário, retorna false. |
<= |
Operadores Aritméticos | Retorna true se o lado esquerdo for menor ou igual ao lado direito, caso contrário, retorna false. |
= |
Operadores Aritméticos | Retorna true se o lado esquerdo for igual ao lado direito, caso contrário, retorna false. |
> |
Operadores Aritméticos | Retorna true se o lado esquerdo for maior que o direito, caso contrário, retorna false. |
>= |
Operadores Aritméticos | Retorna true se o lado esquerdo for maior ou igual ao lado direito, caso contrário, retorna false. |
Operadores booleanos
A tabela a seguir descreve os símbolos dos operadores aritméticos e booleanos.
| Símbolo ou operador | Ligações | Descrição |
|---|---|---|
&& |
Operadores Booleanos | Calcula a operação Boolean AND. |
|| |
Operadores Booleanos | Calcula a operação OR booleana. |
Operadores Bitwise
A tabela a seguir descreve os operadores bitwise.
| Símbolo ou operador | Ligações | Descrição |
|---|---|---|
&&& |
Operadores de Manipulação de Bits | Calcula a operação bit a bit AND. |
<<< |
Operadores de Manipulação de Bits | Desloca bits na quantidade do lado esquerdo para a esquerda pelo número de bits especificado no lado direito. |
>>> |
Operadores de Manipulação de Bits | Desloca bits na quantidade do lado esquerdo para a direita pelo número de lugares especificados no lado direito. |
^^^ |
Operadores de Manipulação de Bits | Calcula a operação OR exclusiva bitwise. |
||| |
Operadores de Manipulação de Bits | Calcula a operação OR bit a bit. |
~~~ |
Operadores de Manipulação de Bits | Calcula a operação bit a bit NOT. |
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 | Ligações | 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 do lado direito (operador de tubo para a frente). |
||> |
( ||> Função< )'T1,'T2,'U> | Passa a tupla de dois argumentos no lado esquerdo para a função no lado direito. |
|||> |
( |||> )<'T1,'T2,'T3,'U> Função | Passa a tupla de três argumentos do lado esquerdo para a função do lado direito. |
>> |
Funções | Compõe duas funções (operador de composição para frente). |
<< |
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 tubo para trás). |
<|| |
<( || )<» Função T1,'T2,'U> | Passa a tupla de dois argumentos do lado direito para a função do lado esquerdo. |
<||| |
<( ||| )<» Função T1,'T2,'T3,'U> | Passa a tupla de três argumentos do lado direito para a função do lado esquerdo. |
Símbolos de tipo e operadores
A tabela a seguir descreve símbolos relacionados à anotação de tipo e testes de tipo.
| Símbolo ou operador | Ligações | Descrição |
|---|---|---|
-> |
Funções | Em tipos de função, delimita argumentos e valores de retorno, também produz 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ão e Transformações | Converte um tipo em tipo mais alto na hierarquia. |
:? |
Expressões de correspondência | Retorna true se o valor corresponde ao tipo especificado (incluindo se for um subtipo); caso contrário, retorna false (operador de teste de tipo). |
:?> |
Conversão e Transformações | Converte um tipo em um tipo que é 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 Strings |
|
{} |
Classe ou Registo | Quando usado com a palavra-chave, delimita type uma classe ou registro. O tipo é uma classe quando os membros são declarados ou a class palavra-chave é usada. Caso contrário, é um recorde. |
{||} |
Registo anónimo | Indica um registo anónimo |
Símbolos usados na pesquisa de membros e expressões de fatia
A tabela a seguir descreve símbolos adicionais usados em pesquisas de membros e expressões de fatia.
| Símbolo ou operador | Ligações | Descrição |
|---|---|---|
. |
Membros | Acessa um membro e separa nomes individuais em um nome totalmente qualificado. |
[...] ou .[...] |
Arrays Propriedades indexadas Expressões de fatia |
Indexa em uma matriz, cadeia de caracteres ou coleção, ou tira 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 unitários e matrizes.
| Símbolo ou operador | Ligações | 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. |
[|...|] |
Arrays | Delimita os elementos de uma matriz. |
Símbolos utilizados em expressões imperativas
A tabela a seguir descreve símbolos adicionais usados em expressões.
| Símbolo ou operador | Ligações | 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 utilizados em sequências e expressões computacionais
A tabela a seguir descreve símbolos adicionais usados em Sequências e Expressões de Computação.
| Símbolo ou operador | Ligações | Descrição |
|---|---|---|
-> |
Sequências | Produz uma expressão (em expressões sequenciais); equivalente às do yield palavras-chave. |
! |
Expressões computacionais | Depois de uma palavra-chave, indica uma versão modificada do comportamento da palavra-chave como controlada por uma expressão computacional. |
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 | Ligações | 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 utilizados nas declarações
A tabela a seguir descreve símbolos relacionados a declarações.
| Símbolo ou operador | Ligações | Descrição |
|---|---|---|
(|...|) |
Padrões Ativos | Delimita um nome de padrão ativo. Também chamados de grampos 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ária. |
~- |
Sobrecarga de Operador | Usado para declarar uma sobrecarga para o operador unário menos. |
~+ |
Sobrecarga de Operador | Usado para declarar uma sobrecarga para o operador unary plus. |
Símbolos adicionais utilizados nas citações
A tabela a seguir descreve símbolos relacionados a cotações de código.
| Símbolo ou operador | Ligações | Descrição |
|---|---|---|
<@...@> |
Cotações de código | Delimita uma cotação de código digitada. |
<@@...@@> |
Cotações de código | Delimita uma cotação de código não tipada. |
% |
Cotações de código | Usado para emendar expressões em citações de código digitadas. |
%% |
Cotações de código | Usado para emendar expressões em citações de código não tipadas. |
Operadores de pesquisa dinâmica
A tabela a seguir descreve símbolos adicionais usados em expressões de pesquisa dinâmica. Eles geralmente não são usados na programação de rotina do F# e nenhuma implementação desses operadores é fornecida na biblioteca principal do F#.
| Símbolo ou operador | Ligações | Descrição |
|---|---|---|
? |
Usado como operador para chamadas dinâmicas de método e propriedade. | |
? ... <- ... |
Usado como um operador para definir propriedades dinâmicas. |
Operadores anuláveis em consultas
Os Operadores Nulos são definidos para uso em Expressões de Consulta. A tabela a seguir mostra esses operadores.
| Símbolo ou operador | Ligações | Descrição |
|---|---|---|
%? |
Operadores anuláveis | Calcula o número inteiro restante, 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 a operação menos que, 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 que ou igual" quando o lado direito é um tipo anulável. |
?>=, ?>, , ?<=, ?<, ?<>?=, ?+, ?-?*,?/ |
Operadores anuláveis | Equivalente aos operadores correspondentes sem o ? prefix, onde um tipo anulável está à esquerda. |
>=?, >?, , <=?, <?, <>?=?, +?, -?*?,/? |
Operadores anuláveis | Equivalente aos operadores correspondentes sem o ? sufixo, onde um tipo anulável está à direita. |
?>=?, ?>?, , ?<=?, ?<?, ?<>??=?, ?+?, ?-??*?,?/? |
Operadores anuláveis | Equivalente aos operadores correspondentes sem os pontos de interrogação circundantes, onde ambos os lados são tipos anuláveis. |
Operadores de célula de referência (preteridos)
A tabela a seguir descreve símbolos relacionados às Células de Referência. O uso desses operadores gera mensagens de aviso a partir do F# 6. Para obter mais informações, consulte Mensagens de aviso de operação da célula de referência.
| Símbolo ou operador | Ligações | Descrição |
|---|---|---|
! |
Células de referência | Cancela a referência de uma célula de referência. |
:= |
Células de referência | Atribui um valor a uma célula de referência. |
Precedência dos operadores
A tabela a seguir mostra a ordem de precedência dos operadores e outras palavras-chave de expressão em F#, na ordem da menor precedência para a maior precedência. Também está listada a associatividade, se aplicável.
| Operador | Associatividade |
|---|---|
as |
Certo |
when |
Certo |
| (tubo) |
Esquerda |
; |
Certo |
let |
Não associativo |
function, fun, match, try |
Não associativo |
if |
Não associativo |
not |
Certo |
-> |
Certo |
:= |
Certo |
, |
Não associativo |
or, || |
Esquerda |
&, && |
Esquerda |
:>, :?> |
Certo |
<
op, >op, =, |op, op, && ,$(incluindo <<<, >>>, |||, &&&) |
Esquerda |
^
PO(incluindo ^^^) |
Certo |
:: |
Certo |
:? |
Não associativo |
-
OP, +OP |
Aplica-se a usos infixos desses símbolos |
*
op, /op, %op |
Esquerda |
**
PO |
Certo |
f x (aplicação da função)(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# suporta sobrecarga de operador personalizado. Isso significa que você pode definir seus próprios operadores. Na tabela anterior, op pode ser qualquer sequência válida (possivelmente vazia) de caracteres do operador, seja interna ou definida pelo usuário. Assim, você pode usar essa tabela para determinar qual sequência de caracteres usar para um operador personalizado atingir o nível desejado de precedência. Os caracteres principais . são ignorados quando o compilador determina a precedência.