Latest web development tutorials

Operatori Swift

Un operatore è un simbolo, usato per dire al compilatore di eseguire una operazioni matematiche o logiche.

Swift offre i seguenti operatori:

  • Gli operatori aritmetici
  • confronto
  • Operatori logici
  • operatori bit per bit
  • Operatori di assegnazione
  • Operatori Intervallo
  • altri operatori

Questo capitolo vi spiegherà operatori aritmetici, operatori relazionali, operatori logici, operatori bit a bit, operatore di assegnazione e di altri operatori.


Gli operatori aritmetici

Nella tabella seguente sono elencati gli operatori aritmetici di supporto lingua Swift, 10 dei quali variabili Una variabile B 20:

operatori descrizione Esempi
+ più Risultati per A + B 30
- meno A - Risultati B -10
* segno di moltiplicazione A risultati * B per 200
/ Segno di divisione B / A 2 risultati
% resto B risultato% A è 0
++ incremento A ++ 11 risultati
- diminuzione risultato A-- 9

Esempi

Di seguito è riportato un semplice esempio di operazioni aritmetiche:

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

I suddetti risultati dell'esecuzione del programma:

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

confronto

La seguente tabella elenca il supporto della lingua Swift operatori di confronto, in cui le variabili A 10, B 20 variabili:

operatori descrizione Esempi
== pari (A == B) è falsa.
! = Non è uguale (A! = B) è vera.
> maggiore di (A> B) è falso.
< meno (A <B) è vera.
> = Maggiore o uguale (A> = B) è falsa.
<= Minore o uguale (A <= B) è vera.

Esempi

Di seguito è riportato un semplice esempio di operazioni di confronto:

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

I suddetti risultati dell'esecuzione del programma:

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

Operatori logici

Nella tabella seguente sono elencati gli operatori logici di supporto lingua Swift, dove la variabile A è vero, la variabile B è falso:

operatori descrizione Esempi
&& Logica e. Se l'operatore è TRUE entrambi i lati era vero. (A && B) è falsa.
|| O la logica. Se l'operatore su entrambi i lati di almeno uno dei TRUE è TRUE. (A || B) è vera.
! Non è logico. Si inverte il valore booleano, così vero diventa falso, falso diventa vero. ! (A && B) è vera.

Di seguito è riportato un semplice esempio di operazione logica:

import Cocoa

var A = true
var B = false

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

I suddetti risultati dell'esecuzione del programma:

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

operatori bit per bit

Bit per bit Operatori bit utilizzati per operare, ~, &, |, ^ sono stati negato, e il bit, o con bit e, operazione di XOR bit a bit con i seguenti esempi tabella:

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; due variabili corrispondente binario è:

A = 0011 1100

B = 0000 1101

Per le operazioni di bit:

operatori descrizione diagramma Esempi
& Bitwise e. Con un bit a bit operatore di operare due numeri e restituisce un nuovo numero, ogni bit di questo numero richiede due numeri di ingresso sono solo 1 a 1. (A & B) risultato è 12, il binario è 0000 1100
| OR bit a bit. Operatore OR | confronta due numeri e restituisce un nuovo numero ogni insieme questo numero è le stesse condizioni del primo dei due numeri di ingresso sono diversi da zero (cioè, uno di 1, o sono 1). (A | B) il risultato è 61, il binario è 00.111.101
^ XOR bit a bit OR di bit esclusivo operatore ^ confrontare due numeri e poi restituisce un numero, questo numero è impostato su ogni bit Condizione 1 sono due ingressi con un numero diverso, se uguale a zero. (A ^ B) si traduce per il 49 binari a 00.110.001
~ operatori bit a bit - per una serie di operazioni di ogni bit invertiti. (~ A) -61 risultato, il binario è di 1100 0011 in forma di complemento a 2.
<< Sinistra bit a bit. L'operatore di spostamento a sinistra (<<) si sposta a sinistra tutti i bit il numero di bit operando specificato.

Mostrato nella figura seguente << 1 11111111 (11111111 sinistro) risultati. numeri blu spostati bit bit scartati grigio, coprendo i posti vacanti con l'arancio 0.

A << 2 risultati per 240 binario è 11110000
>> Destra bit a bit. Tutti i bit a destra e spostare il numero di bit specificato dell'operatore (<<) operando.

La figura seguente mostra >> 1 11111111 (11111111 destra) risultati. numeri blu spostati bit bit scartati grigio, coprendo i posti vacanti con l'arancio 0.

A >> 2 risultati per 15 0000 1111 sistema binario

Quanto segue è un semplice esempio di operazioni 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)")

I suddetti risultati dell'esecuzione del programma:

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

Operatori di assegnazione

La seguente tabella elenca la lingua Swift operatore di assegnazione di base:

operatori descrizione Esempi
= operatore di assegnazione Semplice, specifica l'operando di destra assegnato al operando a sinistra. C risultato = A + B + A operazione B è assegnato a C
+ = L'aggiunta dopo l'assegnazione, i lati sinistro e destro del operando prima di aggiungere assegnati al operando a sinistra. C + = A corrisponde a C = C + A
- = Dopo assegnazione sottrazione, gli operandi sinistro e destro su entrambi i lati l'operando a sinistra dopo la sottrazione assegnati. C - = A corrisponde a C = C - A
* = Poi moltiplicando l'assegnazione, i lati sinistro e destro degli operandi si moltiplicano prima assegnazione al operando a sinistra. C * = A corrisponde a C = C * A
/ = Diviso dopo l'assegnazione, i lati sinistro e destro del operando divisione dopo l'assegnazione alla operando a sinistra. C / = A è equivalente C = C / A
% = Resto dopo l'assegnazione, i lati sinistro e destro del operando rimanente dopo l'assegnazione alla operando a sinistra. C% = A è equivalente a C = C% A
<< = Sinistra bit a bit dopo l'assegnazione C << = 2 corrisponde a C = C << 2
>> = Bit a bit a destra dopo la cessione C >> = 2 è equivalente a C = C >> 2
& = AND bit a bit incarico dopo l'operazione C & = 2 è equivalente C = C & 2
^ = OR di bit esclusivo dell'operatore e poi assegnato C ^ = 2 è equivalente a C = C ^ 2
| = OR bit a bit assegnazione dopo C | = 2 corrisponde a C = C | 2

Di seguito è riportato un semplice esempio dell'operatore di assegnazione:

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

I suddetti risultati dell'esecuzione del programma:

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

Operatori Intervallo

Swift offre due operatori gamma.

operatori descrizione Esempi
Chiuso Operatori Intervallo operatore intervallo chiuso (a ... b) un intervallo definito contiene tutti i valori da A a B (compreso un e b), b deve essere maggiore o uguale a. Chiuso operatore iterazione intervallo in un intervallo di tutti i valori è molto utile, come nel ciclo for-in: 1 ... 5 intervallo è 1, 2, 3, 4 e 5
Semiaperta operatore intervallo Semiaperta intervallo (a .. 1 .. <5 valore di intervallo di 1, 2, 3, e 4

Di seguito è riportato un semplice esempio di intervallo di aritmetica:

import Cocoa

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

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

I suddetti risultati dell'esecuzione del programma:

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

altri operatori

Swift offre altri tipi di operatori, come mono-, di-, e l'operatore ternario.

  • Gli operatori unari su una manipolazione singolo oggetto operativo (ad esempio -a ). operatori Operatore minuto pre e post unari, gli operatori hanno bisogno di pre-operativo subito prima che l'oggetto (come ad esempio !b ), operatore posteriore per un intervento subito dopo che l'oggetto (come ad esempio i++ ).
  • Gli operatori binari operano entrambi gli oggetti operativo (come 2 + 3 ), è in casa, così come appaiono tra i due operandi.
  • Tre operatore ternario operante l'obiettivo dell'operazione, e linguaggi C, Swift è solo un operatore ternario, è operatore ternario ( a ? b : c ).
operatori descrizione Esempi
meno unario Aggiungere un fronte digitale - Prefix -3 O -4
più unario Il denaro Digital Aggiungere + prefisso +6 Risultato 6
operatore ternario ? Condizione X: Y Se si aggiunge che è vero, il valore di X, Y altrimenti

Quanto segue è un dollaro, un semplice esempio di operazioni di binari e ternari:

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

I suddetti risultati dell'esecuzione del programma:

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

precedenza Operatore

In una espressione può contenere una pluralità di differenti operatori di collegamento con diversi tipi di dati degli oggetti dati, dal momento che l'espressione ha una varietà di operazioni, un diverso ordine di operazioni può avere risultati diversi, anche errore di funzionamento errato, perché quando quando un'espressione contenente una serie di operazioni, secondo un certo ordine deve essere combinata in modo da garantire la razionalità e correttezza dei risultati, l'unicità di funzionamento.

La priorità in ordine decrescente dall'alto verso il basso, la parte superiore ha la priorità più alta, l'operatore virgola ha la priorità più bassa.

Lo stesso livello di priorità, secondo l'ordine di binding di calcolo. La maggior parte delle operazioni sono calcolate da sinistra a destra, solo tre priorità sono da destra a sinistra combinazione, sono operatori unari, operatori condizionali, operatori di assegnazione.

Le priorità di base devono ricordare:

  • puntatore ottimale, unario di operatori binari. Come il segno.
  • Prima moltiplicazione e divisione (modulo) dopo la sottrazione.
  • Prima operazione shift aritmetico dopo l'ultimo bit. Si prega di prestare particolare attenzione a: << 1 2 & 3 + 7 è pari a (1 << (3 + 2)) e 7
  • operazione logica calcolo finale
Tipo Operatore operatori direzione di rilegatura
valutazione delle espressioni () []. Espr ++ expr-- Da sinistra a destra
operatore unario

* & + -! ~ ++ Espr --expr

* /%

+ -

>> <<

<> <=> =

==! =

Da destra a sinistra
operatori bit per bit

&

^

|

&&

||

Da sinistra a destra
operatore ternario ?: Da destra a sinistra
Operatori di assegnazione = + = - = * = / =% = >> = << = & = ^ = | = Da destra a sinistra
virgola , Da sinistra a destra

Quanto segue è un semplice esempio di precedenza degli operatori:

import Cocoa

var A = 0

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

I suddetti risultati dell'esecuzione del programma:

A 的值为:4

Esempi di analisi:

Secondo la precedenza degli operatori, è possibile programmare il funzionamento dei passaggi precedenti risolve la seguente espressione è equivalente a:

2 + ((3 * 4) % 5)

Il primo passo per il calcolo: (3 * 4) = 12, quindi l'espressione è equivalente a:

2 + (12 % 5)

Il secondo passo di calcolo 12% 5 = 2, per cui l'espressione è equivalente a:

2 + 2

A questo punto si può facilmente vedere che i risultati calcolati di quattro.