Latest web development tutorials

Operadores Swift

Um operador é um símbolo, usado para dizer ao compilador para executar as operações matemáticas ou lógicas.

Swift fornece os seguintes operadores:

  • operadores aritméticos
  • comparação
  • Operadores lógicos
  • Operadores bit a bit
  • Operadores de atribuição
  • Operadores de intervalo
  • outros operadores

Neste capítulo, vamos explicar-lhe operadores aritméticos, operadores relacionais, operadores lógicos, operadores bit a bit, operador de atribuição e outros operadores.


operadores aritméticos

A tabela a seguir lista os operadores Swift aritméticas suporte a língua, 10 dos quais variável A variável B 20:

operadores descrição Exemplos
+ mais Resultados para A + B 30
- menos A - B -10 resultados
* sinal de multiplicação A resultados * B para 200
/ Sinal de divisão B / A 2 resultados
% restante B% Um resultado é 0
++ incremento A ++ 11 resultados
- diminuição resultado A-- 9

Exemplos

A seguir é um exemplo simples de operações aritméticas:

import Cocoa

var A = 10
var B = 20

print("A + B 结果为:\(A + B)")
print("A - B 结果为:\(A - B)")
print("A * B 结果为:\(A * B)")
print("B / A 结果为:\(B / A)")
A++
print("A++ 后 A 的值为 \(A)")
B--
print("B-- 后 B 的值为 \(B)")

Os resultados da execução do programa acima:

A + B 结果为:30
A - B 结果为:-10
A * B 结果为:200
B / A 结果为:2
A++ 后 A 的值为 11
B-- 后 B 的值为 19

comparação

A tabela a seguir lista os operadores de comparação suporte ao idioma Swift, em que as variáveis ​​A 10, B 20 variáveis:

operadores descrição Exemplos
== igual (A == B) é falsa.
! = não é igual (A! = B) é verdadeiro.
> maior do que (A> B) é falsa.
< menos que (A <B) é verdadeiro.
> = Maior do que ou igual (A> = B) é falsa.
<= Menor ou igual (A <= B) é verdadeiro.

Exemplos

A seguir é um exemplo simples de operações de comparação:

import Cocoa

var A = 10
var B = 20

print("A == B 结果为:\(A == B)")
print("A != B 结果为:\(A != B)")
print("A > B 结果为:\(A > B)")
print("A < B 结果为:\(A < B)")
print("A >= B 结果为:\(A >= B)")
print("A <= B 结果为:\(A <= B)")

Os resultados da execução do programa acima:

A == B 结果为:false
A != B 结果为:true
A > B 结果为:false
A < B 结果为:true
A >= B 结果为:false
A <= B 结果为:true

Operadores lógicos

A tabela a seguir lista os operadores lógicos de suporte ao idioma Swift, onde a variável A é verdade, a variável B é falso:

operadores descrição Exemplos
&& Lógica e. Se o operador for TRUE ambos os lados era verdade. (A && B) é falsa.
|| Ou lógica. Se o operador em ambos os lados de pelo menos um dos verdadeiros era verdade. (A || B) é verdadeiro.
! NÃO lógico. Ele inverte o valor booleano, tão verdadeiro se torna falsa, falsa se torna verdade. ! (A && B) é verdadeiro.

A seguir é um exemplo simples da operação lógica:

import Cocoa

var A = true
var B = false

print("A && B 结果为:\(A && B)")
print("A || B 结果为:\(A || B)")
print("!A 结果为:\(!A)")
print("!B 结果为:\(!B)")

Os resultados da execução do programa acima:

A && B 结果为:false
A || B 结果为:true
!A 结果为:false
!B 结果为:true

Operadores bit a bit

Operadores bit a bit bits usados ​​para operar, ~, &, |, ^ foram negados, eo bit, ou por pouco e, bit a bit operação XOR com os seguintes exemplos de mesa:

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

Se A = 60; e B = 13; duas variáveis ​​correspondente ao binário é:

A = 0011 1100

B = 0000 1101

Para operações bit:

operadores descrição diagrama Exemplos
& Bit a bit e. Com um bit a bit E operador para operar dois números e retorna um novo número, cada bit deste número exige dois números de entrada são apenas 1-1. (A & B) resultado é 12, o binário é 0000 1100
| Bit a bit ou. Bit a bit operador OR | comparar dois números e, em seguida, retorna um novo número de cada definir este número é nas mesmas condições que o primeiro dos dois números de entrada é diferente de zero (isto é, qualquer um de 1, ou são 1). (A | B) o resultado é 61, o binário é 00111101
^ XOR bitwise exclusivo OR operador ^ comparar dois números e retorna um número, esse número é definido para cada bit Condição 1 são duas entradas com um número diferente se igual a zero. (A ^ B) resulta em 49 binários para 00.110.001
~ Operadores bit a bit - para um número de operações de cada bit invertido. (~ A) -61 resultado, o binário é de 1100 0011 na forma do complemento de 2.
<< Bit a bit para a esquerda. O operador de deslocamento à esquerda (<<) irá se mover para o todo o número de bits de esquerda de bits operando especificados.

A figura a seguir mostra << 1 11111111 (11111111 esquerdo) resultados. numerais azuis sendo movido bit cinza pedaços descartados, o preenchimento de vagas com laranja 0.

A << 2 resultados para 240 binário é 11110000
>> Bit a bit direita. Todos os bits para a direita e mover o número de bits do operador (<<) operando especificados.

A figura a seguir mostra >> 1 11111111 (11111111 direita) resultados. numerais azuis sendo movido bit cinza pedaços descartados, o preenchimento de vagas com laranja 0.

A >> 2 resultados para 15 0000 1111 sistema binário

O que se segue é um exemplo simples de operações de bit:

import Cocoa

var A = 60  // 二进制为 0011 1100
var B = 13 // 二进制为 0000 1101

print("A&B 结果为:\(A&B)")
print("A|B 结果为:\(A|B)")
print("A^B 结果为:\(A^B)")
print("~A 结果为:\(~A)")

Os resultados da execução do programa acima:

A&B 结果为:12
A|B 结果为:61
A^B 结果为:49
~A 结果为:-61

Operadores de atribuição

A tabela a seguir lista o idioma Swift operador básico de atribuição:

operadores descrição Exemplos
= Simples operador de atribuição, especifica o operando direito atribuído ao operando esquerdo. C resultado = A + B + A operação B é atribuído a C
+ = Adicionando após a atribuição, os lados esquerdo e direito do operando antes de adicionar atribuído ao operando esquerdo. C + = A corresponde a C = C + A
- = Depois de atribuição de subtração, os operandos esquerdo e direito de ambos os lados do operando esquerdo após subtracção atribuído. C - = A corresponde a C = C - A
* = Em seguida, multiplicando-se a atribuição, os lados esquerdo e direito dos operandos são multiplicados antes atribuição para o operando esquerdo. C * = A corresponde a C = C * A
/ = Dividido após a atribuição, os lados esquerdo e direito do operando divisória após atribuição para o operando esquerdo. C / = A é equivalente C = C / A
% = Remanescente após a atribuição, os lados esquerdo e direito do operando resto depois de atribuição para o operando esquerdo. C% = A é equivalente a C = C% A
<< = Bit a bit à esquerda após a atribuição C << = 2 corresponde a C = C << 2
>> = Bit a bit logo após a atribuição C >> = 2 é equivalente a C = C >> 2
& = Bit a bit e atribuição após operação C & = 2 é equivalente a C = C & 2
= ^ Bit a bit OU exclusivo do operador e, em seguida, atribuído C ^ = 2 é equivalente a C = C ^ 2
| = OR bit a bit atribuição após C | = 2 corresponde a C = C | 2

A seguir é um exemplo simples do operador de atribuição:

import Cocoa

var A = 10
var B = 20
var C = 100

C = A + B
print("C 结果为:\(C)")

C += A
print("C 结果为:\(C)")

C -= A
print("C 结果为:\(C)")

C *= A
print("C 结果为:\(C)")

C /= A
print("C 结果为:\(C)")

//以下测试已注释,可去掉注释测试每个实例
/*
C %= A
print("C 结果为:\(C)")


C <<= A
print("C 结果为:\(C)")

C >>= A
print("C 结果为:\(C)")

C &= A
print("C 结果为:\(C)")

C ^= A
print("C 结果为:\(C)")

C |= A
print("C 结果为:\(C)")
*/

Os resultados da execução do programa acima:

C 结果为:30
C 结果为:40
C 结果为:30
C 结果为:300
C 结果为:30

Operadores de intervalo

Swift oferece dois operadores de intervalo.

operadores descrição Exemplos
Operadores intervalo fechado operador intervalo fechado (a ... b) um intervalo definido contém todos os valores de a para b (incluindo a e b), b deve ser maior do que ou igual a. Fechado operador iteração intervalo numa gama de valores de todos é muito útil, como é o para-em malha: 1 ... 5 gama é 1, 2, 3, 4 e 5
operador de intervalo semi-aberto Semi-aberto intervalo (a .. 1 .. <5 valor do intervalo de 1, 2, 3, e 4

A seguir é um exemplo simples de aritmética intervalar:

import Cocoa

print("闭区间运算符:")
for index in 1...5 {
    print("\(index) * 5 = \(index * 5)")
}

print("半开区间运算符:")
for index in 1..<5 {
    print("\(index) * 5 = \(index * 5)")
}

Os resultados da execução do programa acima:

闭区间运算符:
1 * 5 = 5
2 * 5 = 10
3 * 5 = 15
4 * 5 = 20
5 * 5 = 25
半开区间运算符:
1 * 5 = 5
2 * 5 = 10
3 * 5 = 15
4 * 5 = 20

outros operadores

Swift oferece outros tipos de operadores, tais como um mono-, di-, e o operador ternário.

  • Operadores unários sobre uma manipulação único objeto de operação (por exemplo, -a ). operadores operador operador de minutos pré e pós unários, as operadoras precisam pré-operacional imediatamente antes do objeto (como !b ), operador traseiro para uma operação imediatamente após o objeto (como i++ ).
  • Operadores binários operar os dois objetos operacional (como 2 + 3 ), é em casa, como eles aparecem entre os dois operandos.
  • Três operador ternário operar o destino da operação e linguagens C, Swift é apenas uma operador ternário, é operador ternário ( a ? b : c ).
operadores descrição Exemplos
menos unário Adicionar uma frente digitais - Prefixo -3 Ou -4
além unário Dinheiro Digital Adicionar + Prefixo 6 Resultado 6
operador ternário ? Condição X: Y Se você adicionar é verdade, o valor de X, caso contrário, Y

O que se segue é um dólar, um exemplo simples de operações de binários e ternários:

import Cocoa

var A = 1
var B = 2
var C = true
var D = false
print("-A 的值为:\(-A)")
print("A + B 的值为:\(A + B)")
print("三元运算:\(C ? A : B )")
print("三元运算:\(D ? A : B )")

Os resultados da execução do programa acima:

-A 的值为:-1
A + B 的值为:3
三元运算:1
三元运算:2

Precedência de operador

Em uma expressão pode conter uma pluralidade de diferentes operadores de ligação com diferentes tipos de dados de objectos de dados, uma vez que a expressão tem uma variedade de operações, uma ordem diferente de operações podem ter diferentes resultados, mesmo errada erro de operação, porque quando quando uma expressão contendo uma variedade de operações, de acordo com uma certa ordem devem ser combinadas de modo a assegurar a racionalidade e exactidão dos resultados, a singularidade da operação.

Prioridade por ordem decrescente de cima para baixo, a parte superior tem a maior prioridade, o operador vírgula tem a prioridade mais baixa.

O mesmo nível de prioridade, de acordo com a ordem de ligação de cálculo. A maioria das operações são calculados a partir da esquerda para a direita, apenas três prioridades são da direita para a esquerda combinação, eles são operadores unários, operadores condicionais, operadores de atribuição.

As prioridades básicas precisa se lembrar:

  • ponteiro ideal, unário de operadores binários. Como o sinal.
  • Primeiro multiplicação e divisão (módulo) após subtracção.
  • Primeira operação de deslocamento aritmético após a última computação pouco. Por favor, preste especial atenção: << 1 2 & 3 + 7 é equivalente a (1 << (3 + 2)) e 7
  • operação final lógica de cálculo
Tipo de operador operadores direcção de encadernação
avaliação de expressão () []. Expr ++ expr-- Esquerda para a direita
operador unário

* & + - ~ ++ Expr --expr

* /%

+ -

>> <<

<> <=> =

==! =

Direita para a esquerda
Operadores bit a bit

&

^

|

&&

||

Esquerda para a direita
operador ternário ?: Direita para a esquerda
Operadores de atribuição = + = - = * = / =% = >> = << = & = ^ = | = Direita para a esquerda
vírgula , Esquerda para a direita

O que se segue é um exemplo simples de precedência do operador:

import Cocoa

var A = 0

A = 2 + 3 * 4 % 5
print("A 的值为:\(A)")

Os resultados da execução do programa acima:

A 的值为:4

exemplos de análise:

De acordo com a precedência do operador, você pode programar o funcionamento das etapas acima resolve a seguinte expressão é equivalente a:

2 + ((3 * 4) % 5)

O primeiro passo do cálculo: (3 * 4) = 12, então a expressão é equivalente a:

2 + (12 % 5)

O segundo passo para calcular 12% 5 = 2, de modo que a expressão é equivalente a:

2 + 2

Neste ponto pode ser facilmente visto que os resultados calculados de quatro.