Swift - Operatori

Un operatore è un simbolo che dice al compilatore di eseguire specifiche manipolazioni matematiche o logiche. Objective-C è ricco di operatori incorporati e fornisce i seguenti tipi di operatori:

  • Operatori aritmetici
  • Operatori di confronto
  • Operatori logici
  • Operatori bit per bit
  • Operatori di assegnazione
  • Operatori di intervallo
  • Operatori vari

Questo tutorial spiegherà uno per uno gli operatori aritmetici, relazionali, logici, bit per bit, di assegnazione e altri.

Operatori aritmetici

La tabella seguente mostra tutti gli operatori aritmetici supportati dal linguaggio Swift 4. Assumi variabileA detiene 10 e variabile B detiene 20, quindi -

Operatore Descrizione Esempio
+ Aggiunge due operandi A + B darà 30
- Sottrae il secondo operando dal primo A - B darà -10
* Moltiplica entrambi gli operandi A * B darà 200
/ Divide il numeratore per denominatore B / A darà 2
% Operatore modulo e resto di dopo una divisione intero / float B% A darà 0

Operatori di confronto

La tabella seguente mostra tutti gli operatori relazionali supportati dal linguaggio Swift 4. Assumi variabileA detiene 10 e variabile B detiene 20, quindi -

Operatore Descrizione Esempio
== Controlla se i valori di due operandi sono uguali o meno; se sì, la condizione diventa vera. (A == B) non è vero.
! = Controlla se i valori di due operandi sono uguali o meno; se i valori non sono uguali, la condizione diventa vera. (A! = B) è vero.
> Controlla se il valore dell'operando sinistro è maggiore del valore dell'operando destro; se sì, la condizione diventa vera. (A> B) non è vero.
< Controlla se il valore dell'operando sinistro è inferiore al valore dell'operando destro; se sì, la condizione diventa vera. (A <B) è vero.
> = Controlla se il valore dell'operando sinistro è maggiore o uguale al valore dell'operando destro; se sì, la condizione diventa vera. (A> = B) non è vero.
<= Controlla se il valore dell'operando sinistro è minore o uguale al valore dell'operando destro; se sì, la condizione diventa vera. (A <= B) è vero.

Operatori logici

La tabella seguente mostra tutti gli operatori logici supportati dal linguaggio Swift 4. Assumi variabileA detiene 1 e variabile B tiene 0, quindi -

Operatore Descrizione Esempio
&& Chiamato operatore AND logico. Se entrambi gli operandi sono diversi da zero, la condizione diventa vera. (A && B) è falso.
|| Chiamato Operatore OR logico. Se uno dei due operandi è diverso da zero, la condizione diventa vera. (A || B) è vero.
! Chiamato operatore NOT logico. Utilizzare per invertire lo stato logico del suo operando. Se una condizione è vera, l'operatore NOT logico la renderà falsa. ! (A && B) è vero.

Operatori bit per bit

Gli operatori bit per bit lavorano sui bit ed eseguono operazioni bit per bit. Le tabelle di verità per &, | e ^ sono le seguenti:

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

Gli operatori bit per bit supportati dal linguaggio Swift 4 sono elencati nella tabella seguente. Assumi variabileA detiene 60 e variabile B detiene 13, quindi 7−

Operatore Descrizione Esempio
& L'operatore AND binario copia un po 'nel risultato, se esiste in entrambi gli operandi. (A e B) darà 12, che è 0000 1100
| L'operatore OR binario copia un bit, se esiste in uno degli operandi. (A | B) darà 61, che è 0011 1101
^ L'operatore XOR binario copia il bit, se è impostato in un operando ma non in entrambi. (A ^ B) darà 49, che è 0011 0001
~ Binary Ones Complement Operator è unario e ha l'effetto di "ribaltare" i bit. (~ A) darà -61, che è 1100 0011 in forma di complemento a 2.
<< Operatore binario di spostamento sinistro. Il valore dell'operando sinistro viene spostato a sinistra del numero di bit specificato dall'operando destro. (A << 2 darà 240, che è 1111 0000
>> Operatore binario di spostamento a destra. Il valore dell'operando sinistro viene spostato a destra del numero di bit specificato dall'operando destro. Un >> 2 darà 15, che è 0000 1111

Operatori di assegnazione

SSwift 4 supporta i seguenti operatori di assegnazione:

Operatore Descrizione Esempio
= Operatore di assegnazione semplice, Assegna i valori dagli operandi del lato destro all'operando del lato sinistro C = A + B assegnerà il valore di A + B a C
+ = Aggiungi operatore di assegnazione AND, aggiunge l'operando destro all'operando sinistro e assegna il risultato all'operando sinistro C + = A è equivalente a C = C + A
- = Sottrai AND operatore di assegnazione, sottrae l'operando destro dall'operando sinistro e assegna il risultato all'operando sinistro C - = A è equivalente a C = C - A
* = Moltiplica AND operatore di assegnazione, moltiplica l'operando destro con l'operando sinistro e assegna il risultato all'operando sinistro C * = A è equivalente a C = C * A
/ = Divide AND operatore di assegnazione, divide l'operando sinistro con l'operando destro e assegna il risultato all'operando sinistro C / = A è equivalente a C = C / A
% = Modulo AND operatore di assegnazione, prende il modulo utilizzando due operandi e assegna il risultato all'operando sinistro C% = A è equivalente a C = C% A
<< = Shift sinistro AND operatore di assegnazione C << = 2 è uguale a C = C << 2
>> = Spostamento a destra e operatore di assegnazione C >> = 2 è uguale a C = C >> 2
& = Operatore di assegnazione AND bit per bit C & = 2 è uguale a C = C & 2
^ = OR esclusivo bit per bit e operatore di assegnazione C ^ = 2 è uguale a C = C ^ 2
| = OR bit per bit inclusivo e operatore di assegnazione C | = 2 è uguale a C = C | 2

Operatori di intervallo

Swift 4 include due operatori di intervallo, che sono scorciatoie per esprimere un intervallo di valori. La tabella seguente spiega questi due operatori.

Operatore Descrizione Esempio
Gamma chiusa (a ... b) definisce un intervallo che va da a a b, e include i valori a e b. 1 ... 5 dà 1, 2, 3, 4 e 5
Gamma semiaperta (a .. <b) definisce un intervallo che va da a a b, ma non include b. 1 .. <5 restituisce 1, 2, 3 e 4
Gamma unilaterale

a…, definisce un intervallo che va dalla a alla fine degli elementi

... a, definisce un intervallo che inizia dall'inizio ad a

1 ... dà 1, 2,3 ... fine degli elementi

... 2 dà inizio ... a 1,2

Operatori vari

Swift 4 supporta alcuni altri importanti operatori tra cui rangee ? : che sono spiegati nella tabella seguente.

Operatore Descrizione Esempio
Unario meno Il segno di un valore numerico può essere attivato / disattivato utilizzando un prefisso - -3 o -4
Unario Plus Restituisce il valore su cui opera, senza alcuna modifica. +6 dà 6
Condizionale ternario Condizione ? X: Y Se la condizione è vera? Quindi valore X: altrimenti valore Y

Precedenza degli operatori

La precedenza degli operatori determina il raggruppamento dei termini in un'espressione. Ciò influisce sul modo in cui viene valutata un'espressione. Alcuni operatori hanno la precedenza maggiore di altri; ad esempio, l'operatore di moltiplicazione ha una precedenza maggiore dell'operatore di addizione.

Ad esempio, x = 7 + 3 * 2; qui, x è assegnato 13, non 20 perché l'operatore * ha una precedenza maggiore di +, quindi viene prima moltiplicato per 3 * 2 e poi somma in 7.

Qui, gli operatori con la precedenza più alta vengono visualizzati nella parte superiore della tabella, quelli con la priorità più bassa in fondo. All'interno di un'espressione, verranno valutati per primi gli operatori con precedenza più alta.

Operatore Descrizione Esempio
Operatori di espressione primaria () []. espr ++ espr-- da sinistra a destra
Operatori unari

* E + -! ~ ++ expr --expr

* /%

+ -

>> <<

<> <=> =

==! =

da destra a sinistra
Operatori binari

&

^

|

&&

||

da sinistra a destra
Operatore ternario ?: da destra a sinistra
Operatori di assegnazione = + = - = * = / =% = >> = << = & = ^ = | = da destra a sinistra
Virgola , da sinistra a destra