Referência de símbolo e operador
Este artigo inclui tabelas que descrevem os símbolos e operadores que são utilizados em F# e fornece uma breve descrição de cada um. Alguns símbolos e operadores têm duas ou mais entradas quando utilizados em múltiplas funções.
Comentário, diretiva do compilador e símbolos de atributos
A tabela que se segue descreve símbolos relacionados com comentários, diretivas de compilador e atributos.
Símbolo ou operador | Ligações | Description |
---|---|---|
(*...*) |
Delimita um comentário que pode abranger várias linhas. | |
// |
Indica o início de um comentário de uma única linha. | |
/// |
Documentação XML | Indica um comentário XML. |
# |
Diretivas do compilador | Prefixa uma diretiva de pré-processor ou compilador. |
[<...>] |
Atributos | Delimita um atributo. |
Símbolos de corda e identificador
A tabela que se segue descreve símbolos relacionados com cordas.
Símbolo ou operador | Ligações | Description |
---|---|---|
" |
Cadeias | Delimita uma corda de texto. |
@" |
Cadeias | Inicia uma cadeia de texto verbatim, que pode incluir backslashes e outros caracteres. |
""" |
Cadeias | Delimits uma cadeia de texto triplamente citada, que pode incluir backslashes, marcas duplas de aspas e outros caracteres. |
$" |
Cadeias Interpoladas | Começa uma corda interpolada. |
' |
Literais | Delimita um carácter único literal. |
``...`` |
Delimita um identificador que de outra forma não seria um identificador legal, como uma palavra-chave linguística. | |
\ |
Cadeias | Escapa ao próximo personagem; usado em caracteres e cordas literais. |
Operadores aritméticos
A tabela a seguir descreve os operadores aritméticos.
Símbolo ou operador | Ligações | Description |
---|---|---|
+ |
Operadores Aritméticos |
|
- |
Operadores Aritméticos |
|
* |
Operadores Aritméticos Tuplas Unidades de Medida |
|
/ |
Operadores Aritméticos Unidades de Medida |
|
% |
Operadores Aritméticos | Calcula o resto do inteiro. |
** |
Operadores Aritméticos | Calcula a operação de exponenciação (x ** y meios 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 | Description |
---|---|---|
< |
Operadores Aritméticos | Calcula o menos que a operação. |
<> |
Operadores Aritméticos | Retorna true se o lado esquerdo não for igual ao lado direito; caso contrário, retorna falso. |
<= |
Operadores Aritméticos | Volta true se o lado esquerdo for inferior 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 do que o lado direito; caso contrário, retorna false . |
>= |
Operadores Aritméticos | Volta true se o lado esquerdo for maior ou igual ao lado direito; caso contrário, retorna false . |
Operadores booleanos
A tabela que se segue descreve os símbolos dos operadores aritméticos e booleanos.
Símbolo ou operador | Ligações | Description |
---|---|---|
&& |
Operadores Boolean | Calcula a operação Boolean E. |
|| |
Operadores Boolean | Calcula a operação Boolean OR. |
Operadores bit-a-bit
A tabela a seguir descreve os operadores pouco sensatos.
Símbolo ou operador | Ligações | Description |
---|---|---|
&&& |
Operadores Bitwise | Calcula a operação bitwise E. |
<<< |
Operadores Bitwise | Desloca bits na quantidade do lado esquerdo para a esquerda pelo número de bits especificados no lado direito. |
>>> |
Operadores Bitwise | Desloca bits na quantidade do lado esquerdo para a direita pelo número de lugares especificados no lado direito. |
^^^ |
Operadores Bitwise | Calcula a operação or exclusiva bitwise. |
||| |
Operadores Bitwise | Calcula a operação bitwise OR. |
~~~ |
Operadores Bitwise | Calcula o bitwise NOT operation. |
Símbolos e operadores de função
A tabela a seguir descreve os operadores e símbolos relacionados com as funções.
Símbolo ou operador | Ligações | Description |
---|---|---|
-> |
Funções | Nas 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 (acionador de tubos para a frente). |
||> |
( ||> )<'T1,'T2,'U> Função | Passa a tuple de dois argumentos do lado esquerdo para a função do lado direito. |
|||> |
( |||> )<'T1,'T2,'T3,'u> Função | Passa o tuple 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 dianteira). |
<< |
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 do lado direito para a função do lado esquerdo (acionador de tubos para trás). |
<|| |
( <|| )<' T1,'T2,'U> Função | Passa o tuple de dois argumentos do lado direito para a função do lado esquerdo. |
<||| |
( <||| )<' T1,'T2,'T3,'U> Função | Passa o tuple de três argumentos do lado direito para a função do lado esquerdo. |
Símbolos e operadores de tipo
A tabela a seguir descreve símbolos relacionados com a anotação do tipo e os testes de tipo.
Símbolo ou operador | Ligações | Description |
---|---|---|
-> |
Funções | Nos tipos de funções, delimita os argumentos e os valores de retorno, também produz um resultado em expressões de sequência. |
: |
Funções | Numa anotação tipo, separa um parâmetro ou nome de membro do seu tipo. |
:> |
Fundição e Conversões | Converte um tipo para tipo que é maior na hierarquia. |
:? |
Expressões de correspondência | Devoluções true se o valor corresponder ao tipo especificado (incluindo se for um subtipo); caso contrário, devoluções false (operador de teste de tipo). |
:?> |
Fundição e Conversões | Converte um tipo para um tipo mais baixo na hierarquia. |
# |
Tipos Flexíveis | Quando utilizado com um tipo, indica um tipo flexível, que se refere a um tipo ou a qualquer um dos seus tipos derivados. |
' |
Generalização Automática | Indica um parâmetro genérico do tipo. |
<...> |
Generalização Automática | Delimits tipo parâmetros. |
^ |
Parâmetros de tipo resolvidos estáticamente Cadeias |
|
{} |
Classe ou Record | Quando usado com a type palavra-chave, delimita uma classe ou registo. O tipo é uma classe quando os membros são declarados ou a class palavra-chave é usada. Caso contrário, é um recorde. |
{||} |
Registo anónimo | Denota um registo anónimo |
Símbolos usados na procura de membros e expressões de fatias
A tabela seguinte descreve símbolos adicionais usados na procura de membros e em expressões de fatias.
Símbolo ou operador | Ligações | Description |
---|---|---|
. |
Membros | Acede a um membro e separa nomes individuais num nome totalmente qualificado. |
[...] ou .[...] |
Matrizes Propriedades Indexadas Expressões de fatias |
Indexa-se a uma matriz, string ou coleção, ou leva uma fatia de uma coleção. |
Símbolos usados em tuple, lista, matriz, expressões de unidade e padrões
A tabela que se segue descreve símbolos relacionados com tuples, listas, valores unitários e matrizes.
Símbolo ou operador | Ligações | Description |
---|---|---|
( ) |
Tipo de Unidade | Representa o valor único do tipo de unidade. |
, |
Tuplas | Separa os elementos de um tuple, ou parâmetros de tipo. |
:: |
Listas Expressões de correspondência |
|
@ |
Listas | Concatenates duas listas. |
[...] |
Listas | Delimita os elementos de uma lista. |
[|...|] |
Matrizes | Delimite os elementos de uma matriz. |
Símbolos usados em expressões imperativas
A tabela seguinte descreve símbolos adicionais usados em expressões.
Símbolo ou operador | Ligações | Description |
---|---|---|
<- |
Valores | Atribui um valor a uma variável. |
; |
Sintaxe verbose |
Separa expressões (usadas principalmente na sintaxe verbose). Também separa elementos de uma lista ou campos de um registo. |
Símbolos adicionais utilizados em sequências e expressões computacional
A tabela seguinte descreve símbolos adicionais usados em Sequências e Expressões de Computação.
Símbolo ou operador | Ligações | Description |
---|---|---|
-> |
Sequências | Produz uma expressão (em expressões de sequência); equivalente às do yield palavras-chave. |
! |
Expressões computacional | Após uma palavra-chave, indica uma versão modificada do comportamento da palavra-chave controlada 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 com a correspondência de padrões.
Símbolo ou operador | Ligações | Description |
---|---|---|
-> |
Expressões de correspondência | Usado em expressões de correspondência. |
& |
Expressões de correspondência |
|
_ |
Expressões de correspondência Genéricos |
|
| |
Expressões de correspondência | Delimits casos individuais de correspondência, casos individuais discriminados da união e valores de enumeração. |
Símbolos adicionais utilizados em declarações
A tabela a seguir descreve símbolos relacionados com declarações.
Símbolo ou operador | Ligações | Description |
---|---|---|
(|...|) |
Padrões ativos | Delimita um nome de padrão ativo. Também chamados clips de banana. |
? |
Parâmetros e Argumentos | Especifica um argumento opcional. |
~~ |
Sobrecarga do operador | Usado para declarar uma sobrecarga para o operador de negação nãoário. |
~- |
Sobrecarga do operador | Usado para declarar uma sobrecarga para o operador unary menos. |
~+ |
Sobrecarga do operador | Usado para declarar uma sobrecarga para o operador unary plus. |
Símbolos adicionais utilizados nas cotações
A tabela seguinte descreve símbolos relacionados com as cotações de código.
Símbolo ou operador | Ligações | Description |
---|---|---|
<@...@> |
Cotações de Código | Delimita uma citação de código dactilografada. |
<@@...@@> |
Cotações de Código | Delimita uma citação de código não estampada. |
% |
Cotações de Código | Utilizado para a splicing expressões em citações de código dactilografada. |
%% |
Cotações de Código | Usado para juntar expressões em citações de código não estalificadas. |
Operadores dinâmicos de procuração
A tabela seguinte descreve símbolos adicionais usados em expressões dinâmicas de procuração. Não são geralmente utilizados na programação de rotina F# e não são fornecidas implementações destes operadores na biblioteca central F.
Símbolo ou operador | Ligações | Description |
---|---|---|
? |
Usado como operador para método dinâmico e chamadas de propriedade. | |
? ... <- ... |
Utilizado como operador para definir propriedades dinâmicas. |
Operadores nulos em consultas
Os operadores nulos são definidos para utilização em Expressões de Consulta. A tabela a seguir mostra estes operadores.
Símbolo ou operador | Ligações | Description |
---|---|---|
%? |
Operadores anulados | Calcula o resto inteiro, quando o lado direito é um tipo anulado. |
*? |
Operadores anulados | Multiplica os lados esquerdo e direito, quando o lado direito é um tipo anulado. |
+? |
Operadores anulados | Adiciona os lados esquerdo e direito, quando o lado direito é um tipo anulado. |
-? |
Operadores anulados | Subtrai o lado direito do lado esquerdo, quando o lado direito é um tipo anulado. |
/? |
Operadores anulados | Divide o lado esquerdo pelo lado direito, quando o lado direito é um tipo anulado. |
<? |
Operadores anulados | Calcula o menos que funciona, quando o lado direito é um tipo anulado. |
<>? |
Operadores anulados | Calcula a operação "não igual" quando o lado direito é um tipo anulado. |
<=? |
Operadores anulados | Calcula a operação "menos ou igual" quando o lado direito é um tipo anulado. |
=? |
Operadores anulados | Calcula a operação "igual" quando o lado direito é um tipo anulado. |
>? |
Operadores anulados | Calcula a operação "maior do que" quando o lado direito é um tipo anulado. |
>=? |
Operadores anulados | Calcula a operação "maior ou igual" quando o lado direito é um tipo anulado. |
?>= , ?> , ?<= , ?< , ?= , ?<> , ?+ , ?- , ?* , ?/ |
Operadores anulados | Equivalente aos operadores correspondentes sem o ? prefixo, onde um tipo anulado é à esquerda. |
>=? , >? , <=? , <? , =? , <>? , +? , -? , *? , /? |
Operadores anulados | Equivalente aos operadores correspondentes sem o ? sufixo, onde um tipo anulado está à direita. |
?>=? , ?>? , ?<=? , ?<? , ?=? , ?<>? , ?+? , ?-? , ?*? , ?/? |
Operadores anulados | Equivalente aos operadores correspondentes sem os pontos de interrogação circundantes, em que ambas as partes são tipos nulos. |
Operadores de células de referência (precotados)
A tabela que se segue descreve símbolos relacionados com as células de referência. A utilização destes operadores gera mensagens de aviso a partir de F# 6. Para obter mais informações, consulte as mensagens de aviso de funcionamento do telemóvel de referência.
Símbolo ou operador | Ligações | Description |
---|---|---|
! |
Células de referência | Dereferências uma célula de referência. |
:= |
Células de referência | Atribui um valor a uma célula de referência. |
Precedência de operadores
A tabela a seguir mostra a ordem de precedência dos operadores e outras palavras-chave de expressão em F#, por ordem da menor precedência até à maior precedência. Também listado é a associatividade, se aplicável.
Operador | Associatividade |
---|---|
as |
Direita |
when |
Direita |
| (tubo) |
Esquerda |
; |
Direita |
let |
Nonassociativo |
function , fun , match , try |
Nonassociativo |
if |
Nonassociativo |
not |
Direita |
-> |
Direita |
:= |
Direita |
, |
Nonassociativo |
or , || |
Esquerda |
& , && |
Esquerda |
:> , :?> |
Direita |
< op, > op, = op| , & op, op, & $ (incluindo <<< , >>> , ||| ) &&& |
Esquerda |
^ op(incluindo ^^^ ) |
Direita |
:: |
Direita |
:? |
Não é associativo |
- op, + op |
Aplica-se à utilização infixo destes símbolos |
* op, / op, % op |
Esquerda |
** op |
Direita |
f x (aplicação de função)(incluindo lazy x , assert x |
Esquerda |
| (correspondência de padrões) |
Direita |
operadores de prefixos (+ op, - op, % %% , , & , && ! op, ~ op) |
Esquerda |
. |
Esquerda |
f(x) |
Esquerda |
f< tipos> |
Esquerda |
F# suporta sobrecarga personalizada do operador. Isto significa que pode definir os seus próprios operadores. Na tabela anterior, a op pode ser qualquer sequência válida (possivelmente vazia) de caracteres do operador, quer incorporados quer definidos pelo utilizador. Assim, pode utilizar esta tabela para determinar que sequência de caracteres usar para um operador personalizado para atingir o nível de precedência desejado. Os caracteres principais .
são ignorados quando o compilador determina a precedência.