Swift - Operadores
Um operador é um símbolo que diz ao compilador para realizar manipulações matemáticas ou lógicas específicas. Objective-C é rico em operadores integrados e fornece os seguintes tipos de operadores -
- Operadores aritméticos
- Operadores de comparação
- Operadores lógicos
- Operadores bit a bit
- Operadores de atribuição
- Operadores de alcance
- Operadores diversos
Este tutorial irá explicar os operadores aritméticos, relacionais, lógicos, bit a bit, atribuição e outros, um por um.
Operadores aritméticos
A tabela a seguir mostra todos os operadores aritméticos suportados pela linguagem Swift 4. Assumir variávelA contém 10 e variável B contém 20, então -
| Operador | Descrição | Exemplo |
|---|---|---|
| + | Adiciona dois operandos | A + B dará 30 |
| - | Subtrai o segundo operando do primeiro | A - B dará -10 |
| * | Multiplica ambos os operandos | A * B dará 200 |
| / | Divide numerador por denominador | B / A dará 2 |
| % | Operador de Módulo e o restante após uma divisão inteiro / flutuante | B% A dará 0 |
Operadores de comparação
A tabela a seguir mostra todos os operadores relacionais suportados pela linguagem Swift 4. Assumir variávelA contém 10 e variável B contém 20, então -
| Operador | Descrição | Exemplo |
|---|---|---|
| == | Verifica se os valores de dois operandos são iguais ou não; se sim, então a condição se torna verdadeira. | (A == B) não é verdade. |
| ! = | Verifica se os valores de dois operandos são iguais ou não; se os valores não forem iguais, a condição se torna verdadeira. | (A! = B) é verdade. |
| > | Verifica se o valor do operando esquerdo é maior que o valor do operando direito; se sim, então a condição se torna verdadeira. | (A> B) não é verdade. |
| < | Verifica se o valor do operando esquerdo é menor que o valor do operando direito; se sim, então a condição se torna verdadeira. | (A <B) é verdade. |
| > = | Verifica se o valor do operando esquerdo é maior ou igual ao valor do operando direito; se sim, então a condição se torna verdadeira. | (A> = B) não é verdade. |
| <= | Verifica se o valor do operando esquerdo é menor ou igual ao valor do operando direito; se sim, então a condição se torna verdadeira. | (A <= B) é verdadeiro. |
Operadores lógicos
A tabela a seguir mostra todos os operadores lógicos suportados pela linguagem Swift 4. Assumir variávelA detém 1 e variável B segura 0, então -
| Operador | Descrição | Exemplo |
|---|---|---|
| && | Operador lógico chamado AND. Se ambos os operandos forem diferentes de zero, a condição se torna verdadeira. | (A && B) é falso. |
| || | Operador lógico ou chamado. Se qualquer um dos dois operandos for diferente de zero, a condição se torna verdadeira. | (A || B) é verdade. |
| ! | Operador lógico chamado NOT. Use para reverter o estado lógico de seu operando. Se uma condição for verdadeira, o operador lógico NOT a tornará falsa. | ! (A && B) é verdade. |
Operadores bit a bit
Operadores bit a bit trabalham em bits e realizam operações bit a bit. As tabelas de verdade para &, | e ^ são as seguintes -
| 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 |
Assume A = 60; and B = 13;
In binary format, they will be as follows:
A = 0011 1100
B = 0000 1101
-----------------
A & B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~A = 1100 0011
Os operadores bit a bit suportados pela linguagem Swift 4 estão listados na tabela a seguir. Assumir variávelA detém 60 e variável B contém 13, então 7−
| Operador | Descrição | Exemplo |
|---|---|---|
| E | O operador Binário AND copia um bit para o resultado, se existir em ambos os operandos. | (A e B) dará 12, que é 0000 1100 |
| | | O operador binário OR copia um bit, se existir em qualquer operando. | (A | B) dará 61, que é 0011 1101 |
| ^ | O operador binário XOR copia o bit, se for definido em um operando, mas não em ambos. | (A ^ B) dará 49, que é 0011 0001 |
| ~ | O operador de complemento binários é unário e tem o efeito de 'inverter' bits. | (~ A) resultará em -61, que é 1100 0011 na forma de complemento de 2. |
| << | Operador binário de deslocamento à esquerda. O valor dos operandos à esquerda é movido para a esquerda pelo número de bits especificado pelo operando à direita. | (A << 2 dará 240, que é 1111 0000 |
| >> | Operador binário de deslocamento à direita. O valor dos operandos à esquerda é movido para a direita pelo número de bits especificado pelo operando à direita. | Um >> 2 dará 15, que é 0000 1111 |
Operadores de atribuição
SSwift 4 suporta os seguintes operadores de atribuição -
| Operador | Descrição | Exemplo |
|---|---|---|
| = | Operador de atribuição simples, atribui valores de operandos do lado direito para operando do lado esquerdo | C = A + B irá atribuir o valor de A + B em C |
| + = | Adicionar operador de atribuição AND, adiciona operando direito ao operando esquerdo e atribui o resultado ao operando esquerdo | C + = A é equivalente a C = C + A |
| - = | Subtrai o operador de atribuição AND, subtrai o operando direito do operando esquerdo e atribui o resultado ao operando esquerdo | C - = A é equivalente a C = C - A |
| * = | Operador de atribuição Multiply AND, multiplica o operando direito pelo operando esquerdo e atribui o resultado ao operando esquerdo | C * = A é equivalente a C = C * A |
| / = | Operador de atribuição e divisão, divide o operando esquerdo com o operando direito e atribui o resultado ao operando esquerdo | C / = A é equivalente a C = C / A |
| % = | Módulo E operador de atribuição, leva o módulo usando dois operandos e atribui o resultado ao operando esquerdo | C% = A é equivalente a C = C% A |
| << = | Deslocamento à esquerda E operador de atribuição | C << = 2 é igual a C = C << 2 |
| >> = | Deslocamento à direita E operador de atribuição | C >> = 2 é igual a C = C >> 2 |
| & = | Operador de atribuição AND bit a bit | C & = 2 é igual a C = C & 2 |
| ^ = | OR exclusivo bit a bit e operador de atribuição | C ^ = 2 é igual a C = C ^ 2 |
| | = | OR inclusivo bit a bit e operador de atribuição | C | = 2 é igual a C = C | 2 |
Operadores de alcance
O Swift 4 inclui dois operadores de intervalo, que são atalhos para expressar uma gama de valores. A tabela a seguir explica esses dois operadores.
| Operador | Descrição | Exemplo |
|---|---|---|
| Faixa Fechada | (a ... b) define um intervalo que vai de a até b e inclui os valores a e b. | 1 ... 5 dá 1, 2, 3, 4 e 5 |
| Alcance Meio Aberto | (a .. <b) define um intervalo que vai de a até b, mas não inclui b. | 1 .. <5 dá 1, 2, 3 e 4 |
| Alcance unilateral | a…, define um intervalo que vai de a ao final dos elementos … A, define um intervalo do início ao |
1 ... dá 1, 2,3 ... fim dos elementos ... 2 dá início ... a 1,2 |
Operadores diversos
Swift 4 oferece suporte a alguns outros operadores importantes, incluindo rangee? : que são explicados na tabela a seguir.
| Operador | Descrição | Exemplo |
|---|---|---|
| Unary Minus | O sinal de um valor numérico pode ser alternado usando um prefixo - | -3 ou -4 |
| Unary Plus | Retorna o valor com o qual opera, sem nenhuma alteração. | +6 dá 6 |
| Condicional ternária | Doença ? X: Y | Se a condição for verdadeira? Então valor X: Caso contrário, valor Y |
Precedência de operadores
A precedência do operador determina o agrupamento de termos em uma expressão. Isso afeta como uma expressão é avaliada. Certos operadores têm precedência mais alta do que outros; por exemplo, o operador de multiplicação tem precedência mais alta do que o operador de adição.
Por exemplo, x = 7 + 3 * 2; aqui, x é atribuído a 13, não 20, porque o operador * tem precedência mais alta do que +, então ele primeiro é multiplicado por 3 * 2 e, em seguida, é adicionado a 7.
Aqui, os operadores com a precedência mais alta aparecem na parte superior da tabela, aqueles com a mais baixa aparecem na parte inferior. Em uma expressão, os operadores de precedência mais altos serão avaliados primeiro.
| Operador | Descrição | Exemplo |
|---|---|---|
| Operadores de expressão primária | () []. expr ++ expr-- | da esquerda para direita |
| Operadores unários | * & + -! ~ ++ expr --expr * /% + - >> << <> <=> = ==! = |
direita para esquerda |
| Operadores binários | E ^ | && || |
da esquerda para direita |
| Operador Ternário | ?: | direita para esquerda |
| Operadores de atribuição | = + = - = * = / =% = >> = << = & = ^ = | = | direita para esquerda |
| Vírgula | , | da esquerda para direita |