Compreendendo os operadores do F#
Neste artigo, você aprenderá como usar os operadores do F# com eficiência , seja você novo no idioma ou um profissional. Discutiremos os diferentes operadores que podem ser usados no F# e sua sintaxe .
A linguagem de programação F# fornece uma ampla variedade de operadores que podem ser usados para operações como aritmética , comparações , lógica e muitas outras operações.
Operadores F#
Os operadores F# são importantes porque fornecem uma maneira concisa e expressiva de executar operações comuns em vários tipos de dados . Sem operadores, você precisaria escrever funções complexas para executar essas operações, resultando em um código mais longo e menos legível.
Os operadores F# são projetados para trabalhar com o paradigma de programação funcional, que enfatiza dados imutáveis e funções puras.
Eles são projetados para funcionar perfeitamente com outros recursos do F# , como correspondência de padrões, compreensões de lista e inferência de tipos. Isso permite que você escreva um código conciso, expressivo e fácil de entender.
Há vários operadores no F# que são semelhantes aos operadores em outras linguagens de programação, mas o F# tem alguns recursos específicos que o tornam especialmente adequado para trabalhar com operadores em comparação com outras linguagens.
Um compilador usa um operador para instruí-lo a executar uma tarefa específica na forma de uma operação matemática ou lógica.
Existem muitos operadores internos no F# e alguns dos tipos mais comuns de operadores estão listados abaixo:
- Operadores aritméticos
- Operadores de comparação
- Operadores booleanos
- Operadores bit a bit
F# Operadores Aritméticos
Existem vários operadores aritméticos disponíveis na linguagem F#, conforme mostrado na tabela a seguir.
Vamos supor que a variável x contém 5 e a variável y contém 15, então acontecerá o seguinte:
| operadores | Visão geral | Exemplos | 
| + | A adição de dois operandos é feita | x + y vai dar 25 | 
| – | A subtração de dois operandos é feita | x – y dará -10 | 
| * | A multiplicação de dois operandos é feita | x * y vai dar 75 | 
| / | A divisão de dois operandos é feita | y/x vai dar 3 | 
| % | Imprime os restos de duas variáveis | y % x dará 0 | 
| ** | Operador de Exponenciação: Este operador pode ser usado em operandos que foram multiplicados por outro operando para obter o resultado. | y**x dará 155 | 
Example:
Sum is: 20Subtraction is: -10 Multiplication is: 75 Division is: 0 Modulus is: 5 Exponentiation is: 759375.0
Operadores de Comparação
Há vários operadores de comparação com suporte na linguagem F# e eles são mostrados na tabela a seguir.
O termo comparação binária refere-se à comparação de dois tipos de dados, integrais e valores de ponto flutuante.
Um valor do tipo bool é retornado por cada um desses operadores.
Vamos supor que a variável x contém 5 e a variável y contém 15, então acontecerá o seguinte:
| operadores | Visão geral | Exemplos | 
| = | Esta função determina se dois operandos são iguais ou não, comparando seus valores. A condição torna-se verdadeira se os operandos forem iguais. | (x == y) não é verdade. | 
| <> | A função verifica se dois operandos possuem os mesmos valores ou não. Esta condição se tornará verdadeira se nenhum valor for igual, caso contrário, ela se tornará falsa. | (x == y) é verdadeiro. | 
| > | Uma condição é verdadeira se o valor do operando esquerdo for maior que o valor do operando direito. Se não, então a condição é falsa. | (x > y) não é verdade. | 
| < | Uma condição é verdadeira se o valor do operando direito for maior que o valor do operando esquerdo. Se não, então a condição é falsa. | (x > y) é verdadeiro. | 
| >= | Uma condição é verdadeira se o valor do operando esquerdo for maior ou igual ao valor do operando direito. Se não, então a condição é falsa. | (x >= y) não é verdadeiro. | 
| <= | Uma condição é verdadeira se o valor do operando direito for maior e igual ao valor do operando esquerdo. Se não, então a condição é falsa. | (x <= y) é verdadeiro. | 
Example:
x is not equal to y x is not equal to y x is less than y x is not greater than y x is less or equal to y x is a is less than y
Operadores booleanos
Uma tabela é fornecida abaixo que lista todos os operadores booleanos com suporte no F#. Assumindo que a variável x é verdadeira e a variável y é falsa, então:
| operadores | Visão geral | Exemplos | 
| && | Também é chamado de operador booleano AND. Esta condição é verdadeira se ambos os operandos forem diferentes de zero. | (x && y) é falso. | 
| || | Também é chamado de operador OR booleano. Esta condição é verdadeira se algum dos dois operandos for diferente de zero. | (x || y) é verdadeiro. | 
| não | Também é chamado de Operador Booleano NOT. Reverter o estado lógico de seus operandos. Ao usar o operador Logical NOT, uma condição verdadeira torna-se falsa e uma condição falsa torna-se verdadeira. | not (x && y) é verdadeiro. | 
Example:
X && Y Condition is true X || Y Condition is true not (x && y) Condition is not true X && Y Condition is not true X || Y Condition is true not (x && y) Condition is true
Operadores bit a bit
Usando operadores bit a bit, você pode executar operações bit a bit.
Esta instrução mostra as tabelas de verdade para os operadores bit a bit ( AND ), bit a bit ( OR ) e OR exclusivo bit a bit:
| p | q | p &&& q | p ||| q | p ^^^ q | 
| 0 | 0 | 0 | 0 | 0 | 
| 0 | 1 | 0 | 1 | 1 | 
| 1 | 1 | 1 | 1 | 0 | 
| 1 | 0 | 0 | 1 | 1 | 
Suponha que x = 45 , e y = 15 , e então no formato binário eles serão os seguintes:
A = 0010 1101 B = 0000 1111 A&&&B = 0000 1101 A|||B = 0010 1111 A^^^B = 0010 0010 ~~~A = 1101 0001
Abaixo está uma tabela que lista todos os operadores Bitwise com suporte na linguagem F#.
Se assumirmos que a variável x representa 45 e a variável y representa 15, podemos concluir:
| operadores | Visão geral | Exemplos | 
| &&& | Usando um operador AND binário, se o bit estiver presente em ambos os operandos, ele é copiado para o resultado. | (x &&& y) dará 13, que é 0000 1101 | 
| ||| | A função verifica se dois operandos possuem os mesmos valores ou não. Esta condição se tornará verdadeira se nenhum valor for igual, caso contrário, ela se tornará falsa. | (x ||| y) dará 47, que é 0010 1111 | 
| ^^^ | Uma condição é verdadeira se o valor do operando esquerdo for maior que o valor do operando direito. Se não, então a condição é falsa. | (x ^^^ y) dará 34, que é 0010 0010 | 
| ~~~ | Uma condição é verdadeira se o valor do operando direito for maior que o valor do operando esquerdo. Se não, então a condição é falsa. | (~~~x) dará -46, que é 1101 0001 na forma de complemento de 2s. | 
| <<< | Uma condição é verdadeira se o valor do operando esquerdo for maior ou igual ao valor do operando direito. Se não, então a condição é falsa. | x <<< 2 dará 180 que é 1011 0100 | 
| >>> | Uma condição é verdadeira se o valor do operando direito for maior e igual ao valor do operando esquerdo. Se não, então a condição é falsa. | x >>> 2 dará 11 que é 0000 1011 | 
Example:
x &&& y - Value of z is 13 x ||| y - Value of z is 47 x ^^^ y - Value of z is 34 ~~~x - Value of z is -46 x <<< 2 - Value of z is 180 x >>> 2 - Value of z is 11
Precedência dos Operadores
Como você pode ver na tabela abaixo, os operadores e outras palavras-chave de expressão são classificados em ordem de precedência na linguagem F#, onde o operador de precedência mais baixa é exibido primeiro, seguido pelo operador de precedência mais alta.
| operadores | Associatividade | 
| como | Certo | 
| quando | Certo | 
| | (cano) | Esquerda | 
| ; | Certo | 
| deixar | Não associativo | 
| função, diversão, combinar, tentar | Não associativo | 
| se | Não associativo | 
| → | Certo | 
| := | Certo | 
| , | Certo | 
| ou, || | Esquerda | 
| &, && | Esquerda | 
| <op, >op, =, |op, &op | Esquerda | 
| &&& , |||, ^^^, ~~~, <<<, >>> | Esquerda | 
| ^ op | Certo | 
| :: | Certo | 
| :?> | Não associativo | 
| – op, +op, (binário) | Esquerda | 
| * op, /op, %op | Esquerda | 
| ** op | Certo | 
| fx (aplicativo de função) | Esquerda | 
| | (correspondência de padrão) | Certo | 
| Operadores de prefixo (+op, -op, %, %%, &, &&, !op, ~op) | Esquerda | 
| . | Esquerda | 
| f(x) | Esquerda | 
| f<tipos> | Esquerda | 
