Solidità - Operatori

Cos'è un operatore?

Prendiamo una semplice espressione 4 + 5 is equal to 9. Qui vengono chiamati 4 e 5operands e "+" è chiamato operator. Solidity supporta i seguenti tipi di operatori.

  • Operatori aritmetici
  • Operatori di confronto
  • Operatori logici (o relazionali)
  • Operatori di assegnazione
  • Operatori condizionali (o ternari)

Diamo uno sguardo a tutti gli operatori uno per uno.

Operatori aritmetici

Solidity supporta i seguenti operatori aritmetici:

Supponiamo che la variabile A contenga 10 e la variabile B ne contenga 20, quindi -

Mostra esempio

Sr.No. Operatore e descrizione
1

+ (Addition)

Aggiunge due operandi

Ex: A + B darà 30

2

- (Subtraction)

Sottrae il secondo operando dal primo

Ex: A - B darà -10

3

* (Multiplication)

Moltiplica entrambi gli operandi

Ex: A * B darà 200

4

/ (Division)

Dividi il numeratore per il denominatore

Ex: B / A darà 2

5

% (Modulus)

Restituisce il resto di una divisione intera

Ex: B% A darà 0

6

++ (Increment)

Aumenta un valore intero di uno

Ex: A ++ darà 11

7

-- (Decrement)

Diminuisce un valore intero di uno

Ex: A-- darà 9

Operatori di confronto

Solidity supporta i seguenti operatori di confronto:

Supponiamo che la variabile A contenga 10 e la variabile B ne contenga 20, quindi -

Mostra esempio

Sr.No. Operatore e descrizione
1

= = (Equal)

Controlla se il valore di due operandi è uguale o meno, in caso affermativo, la condizione diventa vera.

Ex: (A == B) non è vero.

2

!= (Not Equal)

Controlla se il valore di due operandi è uguale o meno, se i valori non sono uguali, la condizione diventa vera.

Ex: (A! = B) è vero.

3

> (Greater than)

Controlla se il valore dell'operando sinistro è maggiore del valore dell'operando destro, in caso affermativo la condizione diventa vera.

Ex: (A> B) non è vero.

4

< (Less than)

Controlla se il valore dell'operando sinistro è inferiore al valore dell'operando destro, in caso affermativo la condizione diventa vera.

Ex: (A <B) è vero.

5

>= (Greater than or Equal to)

Controlla se il valore dell'operando sinistro è maggiore o uguale al valore dell'operando destro, in caso affermativo, la condizione diventa vera.

Ex: (A> = B) non è vero.

6

<= (Less than or Equal to)

Controlla se il valore dell'operando sinistro è minore o uguale al valore dell'operando destro, se sì, la condizione diventa vera.

Ex: (A <= B) è vero.

Operatori logici

Solidity supporta i seguenti operatori logici:

Supponiamo che la variabile A contenga 10 e la variabile B ne contenga 20, quindi -

Mostra esempio

Sr.No. Operatore e descrizione
1

&& (Logical AND)

Se entrambi gli operandi sono diversi da zero, la condizione diventa vera.

Ex: (A && B) è vero.

2

|| (Logical OR)

Se uno dei due operandi è diverso da zero, la condizione diventa vera.

Ex: (A || B) è vero.

3

! (Logical NOT)

Inverte lo stato logico del suo operando. Se una condizione è vera, l'operatore NOT logico la renderà falsa.

Ex:! (A && B) è falso.

Operatori bit per bit

Solidity supporta i seguenti operatori bit per bit:

Supponiamo che la variabile A contenga 2 e la variabile B contenga 3, quindi -

Mostra esempio

Sr.No. Operatore e descrizione
1

& (Bitwise AND)

Esegue un'operazione booleana AND su ogni bit dei suoi argomenti interi.

Ex: (A e B) è 2.

2

| (BitWise OR)

Esegue un'operazione booleana OR su ogni bit dei suoi argomenti interi.

Ex: (A | B) è 3.

3

^ (Bitwise XOR)

Esegue un'operazione booleana OR esclusivo su ogni bit dei suoi argomenti interi. OR esclusivo significa che uno degli operandi uno è vero o l'operando due è vero, ma non entrambi.

Ex: (A ^ B) è 1.

4

~ (Bitwise Not)

È un operatore unario e opera invertendo tutti i bit nell'operando.

Ex: (~ B) è -4.

5

<< (Left Shift)

Sposta tutti i bit nel suo primo operando a sinistra del numero di posizioni specificato nel secondo operando. I nuovi bit vengono riempiti con zeri. Spostare un valore a sinistra di una posizione equivale a moltiplicarlo per 2, spostare due posizioni equivale a moltiplicarlo per 4 e così via.

Ex: (A << 1) è 4.

6

>> (Right Shift)

Operatore binario di spostamento a destra. Il valore dell'operando sinistro viene spostato a destra del numero di bit specificato dall'operando destro.

Ex: (A >> 1) è 1.

7

>>> (Right shift with Zero)

Questo operatore è proprio come l'operatore >>, tranne per il fatto che i bit spostati a sinistra sono sempre zero.

Ex: (A >>> 1) è 1.

Operatori di assegnazione

Solidity supporta i seguenti operatori di assegnazione:

Mostra esempio

Sr.No. Operatore e descrizione
1

= (Simple Assignment )

Assegna i valori dall'operando del lato destro all'operando del lato sinistro

Ex: C = A + B assegnerà il valore di A + B a C

2

+= (Add and Assignment)

Aggiunge l'operando destro all'operando sinistro e assegna il risultato all'operando sinistro.

Ex: C + = A è equivalente a C = C + A

3

−= (Subtract and Assignment)

Sottrae l'operando destro dall'operando sinistro e assegna il risultato all'operando sinistro.

Ex: C - = A è equivalente a C = C - A

4

*= (Multiply and Assignment)

Moltiplica l'operando destro con l'operando sinistro e assegna il risultato all'operando sinistro.

Ex: C * = A è equivalente a C = C * A

5

/= (Divide and Assignment)

Divide l'operando sinistro con l'operando destro e assegna il risultato all'operando sinistro.

Ex: C / = A è equivalente a C = C / A

6

%= (Modules and Assignment)

Richiede il modulo utilizzando due operandi e assegna il risultato all'operando sinistro.

Ex: C% = A è equivalente a C = C% A

Note - La stessa logica si applica agli operatori Bitwise, quindi diventeranno come << =, >> =, >> =, & =, | = e ^ =.

Operatore condizionale (? :)

L'operatore condizionale valuta prima un'espressione per un valore vero o falso e quindi esegue una delle due istruzioni fornite a seconda del risultato della valutazione.

Mostra esempio

Sr.No. Operatore e descrizione
1

? : (Conditional )

Se la condizione è vera? Quindi valore X: altrimenti valore Y