Elisir - Operatori
Un operatore è un simbolo che dice al compilatore di eseguire manipolazioni matematiche o logiche specifiche. Ci sono MOLTI operatori forniti da elixir. Si dividono nelle seguenti categorie:
- Operatori aritmetici
- Operatori di confronto
- Operatori booleani
- Operatori vari
Operatori aritmetici
La tabella seguente mostra tutti gli operatori aritmetici supportati dal linguaggio Elixir. Assumi variabileA detiene 10 e variabile B detiene 20, quindi -
Operatore | Descrizione | Esempio |
---|---|---|
+ | Aggiunge 2 numeri. | A + B darà 30 |
- | Sottrae il secondo numero dal primo. | AB darà -10 |
* | Moltiplica due numeri. | A * B darà 200 |
/ | Divide il primo numero dal secondo. Questo lancia i numeri in float e dà un risultato float | A / B darà 0,5. |
div | Questa funzione viene utilizzata per ottenere il quoziente sulla divisione. | div (10,20) darà 0 |
rem | Questa funzione viene utilizzata per ottenere il resto sulla divisione. | rem (A, B) darà 10 |
Operatori di confronto
Gli operatori di confronto in Elixir sono per lo più comuni a quelli forniti nella maggior parte delle altre lingue. La tabella seguente riassume gli operatori di confronto in Elixir. Assumi variabileA detiene 10 e variabile B detiene 20, quindi -
Operatore | Descrizione | Esempio |
---|---|---|
== | Controlla se il valore a sinistra è uguale al valore a destra (Tipo esegue il cast dei valori se non sono dello stesso tipo). | A == B darà falso |
! = | Controlla se il valore a sinistra non è uguale al valore a destra. | A! = B darà vero |
=== | Controlla se il tipo di valore a sinistra è uguale al tipo di valore a destra, se sì, controlla lo stesso per il valore. | A === B darà falso |
! == | Come sopra ma controlla la disuguaglianza invece dell'uguaglianza. | A! == B darà vero |
> | Controlla se il valore dell'operando sinistro è maggiore del valore dell'operando destro; se sì, allora la condizione diventa vera. | A> B darà falso |
< | Controlla se il valore dell'operando sinistro è inferiore al valore dell'operando destro; se sì, allora la condizione diventa vera. | A <B darà vero |
> = | Controlla se il valore dell'operando sinistro è maggiore o uguale al valore dell'operando destro; se sì, allora la condizione diventa vera. | A> = B darà falso |
<= | Verifica se il valore dell'operando sinistro è minore o uguale al valore dell'operando destro; se sì, allora la condizione diventa vera. | A <= B darà vero |
Operatori logici
Elixir fornisce 6 operatori logici: and, or, not, &&, || e !. I primi tre,and or notsono operatori booleani rigorosi, il che significa che si aspettano che il loro primo argomento sia un booleano. L'argomento non booleano genererà un errore. Mentre i prossimi tre,&&, || and !non sono rigorosi, non richiedono di avere il primo valore rigorosamente come booleano. Funzionano allo stesso modo delle loro controparti rigorose. Assumi variabileA è vero e variabile B detiene 20, quindi -
Operatore | Descrizione | Esempio |
---|---|---|
e | Verifica se entrambi i valori forniti sono veritieri, in caso affermativo restituisce il valore della seconda variabile. (Logico e). | A e B daranno 20 |
o | Verifica se uno dei valori forniti è veritiero. Restituisce il valore vero. Altrimenti restituisce false. (Logico o). | A o B daranno vero |
non | Operatore unario che inverte il valore di un dato input. | non A darà falso |
&& | Non rigoroso and. Funziona comeand ma non si aspetta che il primo argomento sia un booleano. | B && A darà 20 |
|| | Non rigoroso or. Funziona comeor ma non si aspetta che il primo argomento sia un booleano. | B || A dare vero |
! | Non rigoroso not. Funziona comenot ma non si aspetta che l'argomento sia un booleano. | ! A darà falso |
NOTE −e , o , && e || || sono operatori di cortocircuito. Ciò significa che se il primo argomento diandè falso, quindi non controllerà ulteriormente il secondo. E se il primo argomento diorè vero, quindi non controllerà il secondo. Per esempio,
false and raise("An error")
#This won't raise an error as raise function wont get executed because of short
#circuiting nature of and operator
Operatori bit per bit
Gli operatori bit per bit lavorano sui bit ed eseguono operazioni bit per bit. Elixir fornisce moduli bit per bit come parte del pacchettoBitwise, quindi per utilizzarli è necessario utilizzare il modulo bit a bit. Per usarlo, inserisci il seguente comando nella tua shell:
use Bitwise
Supponiamo che A sia 5 e B sia 6 per i seguenti esempi:
Operatore | Descrizione | Esempio |
---|---|---|
&&& | Bitwise e l'operatore copia un bit nel risultato se esiste in entrambi gli operandi. | A &&& B darà 4 |
||| | Bitwise o l'operatore copia un bit nel risultato se esiste in uno degli operandi. | A ||| B darà 7 |
>>> | L'operatore di spostamento a destra bit per bit sposta i bit del primo operando a destra del numero specificato nel secondo operando. | A >>> B darà 0 |
<<< | L'operatore di spostamento a sinistra bit per bit sposta i bit del primo operando a sinistra del numero specificato nel secondo operando. | A <<< B darà 320 |
^^^ | L'operatore XOR bit per bit copia un bit nel risultato solo se è diverso su entrambi gli operandi. | A ^^^ B darà 3 |
~~~ | Unario bit per bit non inverte i bit sul numero dato. | ~~~ A darà -6 |
Operatori vari
Oltre agli operatori di cui sopra, Elixir fornisce anche una gamma di altri operatori simili Concatenation Operator, Match Operator, Pin Operator, Pipe Operator, String Match Operator, Code Point Operator, Capture Operator, Ternary Operator che lo rendono un linguaggio piuttosto potente.