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 -
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 -
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 -
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 -
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:
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.
Sr.No. | Operatore e descrizione |
---|---|
1 | ? : (Conditional ) Se la condizione è vera? Quindi valore X: altrimenti valore Y |