Latest web development tutorials

Los operadores Swift

Un operador es un símbolo, que sirve para indicar al compilador para realizar unas operaciones matemáticas o lógicas.

Swift ofrece los siguientes operadores:

  • Los operadores aritméticos
  • comparación
  • Los operadores lógicos
  • Los operadores bit a bit
  • Operadores de asignación
  • Operadores de intervalos
  • otros operadores

En este capítulo vamos a explicar a usted operadores aritméticos, operadores relacionales, operadores lógicos, operadores bit a bit, operador de asignación y otros operadores.


Los operadores aritméticos

La siguiente tabla muestra los operadores aritméticos de soporte de idioma Swift, 10 de las cuales la variable A variable B 20:

operadores descripción Ejemplos
+ más Resultados para A + B 30
- menos A - B -10 resultados
* signo de multiplicación A * B resultados para 200
/ Signo de división B / A 2 resultados
% resto B% Un resultado es 0
++ incremento A ++ 11 resultados
- decremento 9 resultado A--

Ejemplos

A continuación se presenta un ejemplo simple de operaciones 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)")

Los anteriores resultados de la ejecución del programa:

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

comparación

La tabla siguiente muestra el soporte de idiomas Swift operadores de comparación, en el que las variables A, B 10 20 variables:

operadores descripción Ejemplos
== igual (A == B) es falsa.
! = no es igual (A! = B) es verdadera.
> más que (A> B) es falsa.
< menos que (A <B) es verdadera.
> = Mayor o igual (A> = B) es falsa.
<= Menor o igual (A <= B) es verdadera.

Ejemplos

A continuación se presenta un ejemplo simple de operaciones de comparación:

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)")

Los anteriores resultados de la ejecución del programa:

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

Los operadores lógicos

La siguiente tabla muestra los operadores lógicos de soporte de idioma Swift, donde la variable A es verdadero, la variable B es falsa:

operadores descripción Ejemplos
&& La lógica y. Si el operador es TRUE ambos lados era cierto. (A && B) es falsa.
|| O la lógica. Si el operador en ambos lados de al menos uno de los verdaderos era cierto. (A || B) es verdadera.
! NO lógico. Se invierte el valor booleano, por lo que se convierte en falsa verdadera, falsa se convierte en verdad. ! (A && B) es verdadera.

A continuación se presenta un ejemplo simple de la operación 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)")

Los anteriores resultados de la ejecución del programa:

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

Los operadores bit a bit

bits de operadores de bits usados ​​para operar, ~, &, |, ^ fueron negado, y el bit, o por bit y, bit a bit operación XOR con los siguientes ejemplos de la tabla:

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

Si A = 60 y B = 13; dos variables correspondientes a binario es:

A = 0011 1100

B = 0000 1101

Para operaciones de bits:

operadores descripción diagrama Ejemplos
y Bit a bit y. Con un operador AND para operar dos números y devuelve un número nuevo, cada bit de este número, se necesita dos números de entrada son sólo el 1 a 1. (A y B) resultado es 12, el binario es 0000 1100
| O bit a bit. Operador binario OR | comparar dos números y devuelve un nuevo número cada establecer este número es las mismas condiciones que el primero de los dos números de entrada son diferentes de cero (es decir, cualquiera de 1, o son 1). (A | B) el resultado es 61, el binario es 00111101
^ Bitwise XOR bit a bit exclusiva operador OR ^ comparar dos números y luego devuelve un número, este número se establece en cada condición de bit 1 son dos entradas con un número diferente si es igual a cero. (A ^ B) da como resultado el 49 de binarios 00110001
~ - operadores de bits para una serie de operaciones invertida cada bit. (~ A) -61 consecuencia, el binario es de 1100 0011 en forma de complemento a 2.
<< Bit a bit a la izquierda. El operador de desplazamiento a la izquierda (<<) se moverá a la de todo el número de bits de la izquierda de los bits de operando especificado.

La siguiente figura muestra << 1 11111111 (11111111 izquierdo) resultados. números azules que se mueven los bits descartados bits de color gris, con la provisión de vacantes de naranja 0.

A << 2 resultados para 240 binario es 11110000
>> la derecha en modo bit. Todos los bits a la derecha y mover el número de bits especificado operador (<<) operando.

La siguiente figura muestra >> 1 11111111 (11111111 derecha) resultados. números azules que se mueven los bits descartados bits de color gris, con la provisión de vacantes de naranja 0.

A >> 2 resultados para 15 0000 1111 sistema binario

El siguiente es un ejemplo sencillo de operaciones de bits:

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)")

Los anteriores resultados de la ejecución del programa:

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

Operadores de asignación

La siguiente tabla muestra el idioma Swift operador básico de asignación:

operadores descripción Ejemplos
= operador de asignación simple, especifica el operando derecho asignado a la izquierda del operando. C resultado = A + B A + B operación se asigna a C
+ = Añadiendo después de la asignación, los lados izquierdo y derecho del operando antes de añadir asignan a la izquierda del operando. C + = A corresponde a C = C + A
- = Después de asignación de resta, los operandos izquierdo y derecho en ambos lados del operando de la izquierda después de la sustracción asignados. C - = A corresponde a C = C - A
* = Entonces multiplicar la asignación, los lados izquierdo y derecho de los operandos se multiplican antes de la asignación al operando izquierdo. C * = A corresponde a C = C * A
/ = Dividido después de la asignación, los lados izquierdo y derecho del operando divisoria después de la asignación al operando de la izquierda. C / = A es equivalente C = C / A
% = El resto después de la asignación, los lados izquierdo y derecho del operando resto después de la asignación al operando de la izquierda. C% = A es equivalente a C = C% A
<< = Izquierda en modo bit después de la asignación C << = 2 corresponde a C = C << 2
>> = Derecha en modo bit después de la asignación C >> = 2 es equivalente a C = C >> 2
y = Y a nivel de bits de asignación después de la operación C & = 2 es equivalente a C = C & 2
^ = Bit a bit OR exclusiva del operador y luego asignado C ^ = 2 es equivalente a C = C ^ 2
| = OR bit a bit después de la asignación C | = 2 corresponde a C = C | 2

A continuación se presenta un ejemplo sencillo del operador de asignación:

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)")
*/

Los anteriores resultados de la ejecución del programa:

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

Operadores de intervalos

Swift ofrece dos operadores de rango.

operadores descripción Ejemplos
Operadores de intervalos cerrados operador de intervalo cerrado (a ... b) un intervalo definido contiene todos los valores de A a B (incluyendo a y b), b debe ser mayor que o igual a. Closed operador iteración intervalo en una gama de todos los valores es muy útil, como en el para-en bucle: 1 ... 5 rango es 1, 2, 3, 4 y 5
Entreabierta operador de intervalo intervalo semiabierto (un .. 1 .. <5 valor de intervalo de 1, 2, 3, y 4

A continuación se presenta un ejemplo simple de aritmética de intervalos:

import Cocoa

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

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

Los anteriores resultados de la ejecución del programa:

闭区间运算符:
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

otros operadores

Swift ofrece otros tipos de operadores, tal como un mono-, di-, y el operador ternario.

  • Los operadores unarios en un solo objeto de la manipulación de funcionamiento (por ejemplo -a ). operador operador minutos antes y después de operadores unitarios, los operadores deben comprobar la validez de funcionar inmediatamente antes de que el objeto (como !b ), agente de cola para una operación inmediatamente después de que el objeto (como i++ ).
  • Los operadores binarios operan ambos objetos de explotación (por ejemplo, 2 + 3 ), que se encuentra en la casa, ya que aparecen entre los dos operandos.
  • Tres operador ternario operar el destino de la operación, y los lenguajes C, Swift es solamente un operador ternario, es operador ternario ( a ? b : c ).
operadores descripción Ejemplos
menos unario Añadir un frente digitales - Prefijo -3 O -4
más unario El dinero digital Añadir + Prefijo Resultado 6 6
operador ternario ? Condición X: Y Si se agrega que es verdadero, el valor de X, Y otra cosa

El siguiente es un dólar, un ejemplo sencillo de operaciones binarias y ternarias:

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 )")

Los anteriores resultados de la ejecución del programa:

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

Prioridad de los operadores

En una expresión puede contener una pluralidad de diferentes operadores de conexión con diferentes tipos de datos de objetos de datos; ya que la expresión tiene una variedad de operaciones, un orden diferente de las operaciones puede tener diferentes resultados incluso error funcionamiento erróneo, ya que cuando cuando una expresión que contiene una variedad de operaciones, de acuerdo con un cierto orden debe combinarse con el fin de garantizar la racionalidad y exactitud de los resultados, la singularidad de la operación.

Prioridad en orden descendente, de arriba abajo, la parte superior tiene la prioridad más alta, el operador coma tiene la prioridad más baja.

El mismo nivel de prioridad, de acuerdo con el orden de enlace de cálculo. La mayoría de las operaciones se calculan de izquierda a derecha, sólo tres prioridades son de derecha a izquierda combinación, son los operadores unarios, operadores condicionales, operadores de asignación.

Las prioridades básicas deben recordar:

  • puntero óptima, unario que los operadores binarios. Como el signo.
  • En primer lugar la multiplicación y la división (módulo) después de la sustracción.
  • Primera operación de desplazamiento aritmético después del último cómputo de bits. Por favor, preste especial atención a: << 1 2 & 3 + 7 es equivalente a (1 << (3 + 2)) y 7
  • operación lógica cálculo final
Tipo de operador operadores dirección de encuadernación
evaluación de la expresión () []. Expr ++ expr-- De izquierda a derecha
operador unitario

* Y + - ~ ++ Expr --expr

* /%

+ -

>> <<

<> = <=>

==! =

De derecha a izquierda
Los operadores bit a bit

y

^

|

&&

||

De izquierda a derecha
operador ternario ?: De derecha a izquierda
Operadores de asignación = + = - = * = / =% = >> << = = & = ^ = | = De derecha a izquierda
coma , De izquierda a derecha

El siguiente es un ejemplo sencillo de precedencia de los operadores:

import Cocoa

var A = 0

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

Los anteriores resultados de la ejecución del programa:

A 的值为:4

ejemplos de análisis:

De acuerdo con la precedencia de operadores, se puede programar el funcionamiento de los pasos anteriores resuelve el siguiente expresión es equivalente a:

2 + ((3 * 4) % 5)

El primer paso en el cálculo: (3 * 4) = 12, por lo que la expresión es equivalente a:

2 + (12 % 5)

El segundo paso para calcular 12% 5 = 2, por lo que la expresión es equivalente a:

2 + 2

En este punto se puede apreciar fácilmente que los resultados calculados de cuatro.