Gli operatori sono funzioni speciali definite nel linguaggio di programmazione Verse per eseguire azioni come operazioni matematiche sui loro operandi. Ad esempio, nell'espressione 1 + 2
, +
è un operatore e 1
e 2
sono operandi.
Ci sono tre formati per gli operatori che vedrai in Verse:
Prefisso: c'è un solo operando e l'operatore si trova prima dell'operando.
Infisso: ci sono due operandi e l'operatore è tra gli operandi.
Postfisso: c'è un solo operando e l'operatore si trova dopo l'operando.
Questa pagina descrive tutti gli operatori che puoi utilizzare in Verse, come funzionano e il loro ordine di valutazione quando vengono utilizzati in combinazione con altri operatori.
Elenco di tutti gli operatori e della precedenza degli operatori
Quando nella stessa espressione vengono utilizzati più operatori, questi vengono valutati nell'ordine di precedenza dal più alto al più basso. La tabella seguente elenca tutti gli operatori incorporati in Verse e la loro precedenza.
Nome | Operatore | Descrizione | Formato operatore | precedenza degli operatori | Esempio |
---|---|---|---|---|---|
Query |
| L'operatore | Postfisso | 9 |
|
Not |
| L'operatore | Prefisso | 8 |
|
Positivo |
| È possibile utilizzare l'operatore | Prefisso | 8 |
|
Negativo |
| È possibile utilizzare l'operatore | Prefisso | 8 |
|
Moltiplicazione |
| L'operatore | operatore infisso | 7 |
|
Divisione |
| L'operatore | operatore infisso | 7 |
|
Addizione |
| L'operatore | operatore infisso | 6 |
|
Sottrazione |
| L'operatore | operatore infisso | 6 |
|
Assegnazione di addizione |
| Con questo operatore è possibile combinare l'addizione e l'assegnazione nella stessa operazione per aggiornare il valore di una variabile. Per maggiori dettagli, vedi Math. | operatore infisso | 5 |
|
Assegnazione di sottrazione |
| Con questo operatore è possibile combinare la sottrazione e l'assegnazione nella stessa operazione per aggiornare il valore di una variabile. Per maggiori dettagli, vedi Math. | operatore infisso | 5 |
|
Assegnazione di moltiplicazione |
| Con questo operatore è possibile combinare la moltiplicazione e l'assegnazione nella stessa operazione per aggiornare il valore di una variabile. Per maggiori dettagli, vedi Math. | operatore infisso | 5 |
|
Assegnazione divisione |
| Con questo operatore è possibile combinare la divisione e l'assegnazione nella stessa operazione per aggiornare il valore di una variabile, a meno che la variabile non sia un numero intero. Per maggiori dettagli, vedi Math. | operatore infisso | 5 |
|
Uguale a |
| L'operatore | operatore infisso | 4 |
|
Non uguale a |
| L'operatore | operatore infisso | 4 |
|
Inferiore a |
| L'operatore | operatore infisso | 4 |
|
Minore di o uguale a |
| L'operatore | operatore infisso | 4 |
|
Maggiore di |
| L'operatore | operatore infisso | 4 |
|
Maggiore o uguale a |
| L'operatore | operatore infisso | 4 |
|
E |
| L'operatore | operatore infisso | 3 |
|
O |
| L'operatore | operatore infisso | 2 |
|
Inizializzazione variabile e costante |
| Con questo operatore è possibile memorizzare i valori in una costante o in una variabile. Per maggiori dettagli, vedi Costanti e variabili. | operatore infisso | 1 |
|
Assegnazione variabile |
| Con questo operatore è possibile aggiornare i valori memorizzati in una variabile. Per maggiori dettagli, vedi Costanti e variabili. | operatore infisso | 1 |
|
Se nella stessa espressione ci sono operatori con la stessa precedenza, essi vengono valutati da sinistra a destra. Ad esempio, nell'espressione 3*2/4
, sia l'operatore *
che /
hanno la stessa precedenza, quindi 3*2
viene valutato per primo e il suo risultato diventa l'operando a sinistra dell'operatore /
.
È possibile modificare l'ordine in cui gli operatori vengono valutati raggruppando le espressioni con ()
. Ad esempio, (1+2)*3
e 1+(2*3)
non danno lo stesso risultato. Per maggiori dettagli, vedi Raggruppamento.
Confronto
Puoi controllare il flusso di esito positivo e negativo con le espressioni di confronto che utilizzano l'operatore di disuguaglianza e uguaglianza. Le espressioni di confronto sono fallibili, quindi è possibile utilizzare gli operatori di confronto solo in contesti di errore, come nelle espressioni if.
La tabella seguente descrive ciascun operatore e i tipi che supporta. Tutti gli operatori di confronto utilizzano il formato infisso.
Operatore | Tipi integrati supportati | Descrizione |
---|---|---|
|
| L'operatore |
|
| L'operatore |
|
| L'operatore |
|
| L'operatore |
|
| L'operatore |
|
| L'operatore |
Sia <>
che =
sono supportati anche per istanze di array
, map
, tuple
e class
, ma con restrizioni. Le istanze array
, map
e tuple
possono contenere solo tipi supportati e le istanze class
sono supportate solo se contengono almeno un membro var.
Decisione
È possibile controllare il flusso con esito positivo e negativo con espressioni di decisione che utilizzano gli operatori not
, and
e or
. Le espressioni di decisione sono fallibili, quindi è possibile utilizzare gli operatori di confronto solo in contesti di errore, come nelle espressioni if
. È possibile utilizzare qualsiasi espressione che abbia esito positivo o negativo con gli operatori di decisione.
Operatore Not
L'operatore di decisione not
nega l'esito positivo o negativo di un'espressione. L'operatore not
utilizza il formato prefisso.
Ad esempio, quando expression
non riesce, not expression
ha esito positivo. Quando expression
ha esito positivo, not expression
ha esito negativo e gli effetti di expression
non vengono mai confermati (come se l'espressione non fosse mai avvenuta).
Ad esempio, dopo l'esecuzione del seguente codice, Example
avrà ancora il valore iniziale 0
:
var Example : int = 0
if (not (set Example = ExampleArray[0])) { … }
È possibile utilizzare not not expression
per verificare se un'espressione avrà esito positivo, ma fare in modo che l'espressione non si verifichi mai.
Risultato dell'espressione p | Risultato dell'espressione non p | Risultato dell'espressione non non p |
---|---|---|
Ha esito positivo e il risultato è | L'espressione non riesce e gli effetti di | L'espressione ha esito positivo, ma gli effetti di |
Non riesce e il risultato è nessun valore | L'espressione ha esito positivo. Il risultato dell'espressione è | L'espressione non riesce. Il risultato dell'espressione è nessun valore. |
Riferimento per l'operatore not che valuta un'espressione, rappresentato da p.
Operatori And / Or
L'operatore di decisione and
utilizza il formato infisso ed è un'espressione fallibile che ha esito positivo se entrambi gli operandi hanno esito positivo o non riesce se almeno un operando non riesce.
L'operatore di decisione or
utilizza il formato infisso ed è:
Contesto di errore per il primo operando.
Espressione fallibile solo se il secondo operando è fallibile.
L'operatore or
salta la valutazione del secondo operando se il primo operando ha esitpo positivo.
La tabella seguente descrive i risultati di tutte le combinazioni di operandi con esito positivo o di errore per le espressioni di decisione utilizzando gli operatori and
e or
.
Risultato dell'espressione p | Risultato dell'espressione q | Risultato dell'espressione p e q | Risultato dell'espressione p o q |
---|---|---|---|
Ha esito positivo e il risultato è | Ha esito positivo e il risultato è | L'espressione ha esito positivo, quindi gli effetti di entrambi | L'espressione ha esito positivo e vengono confermati solo gli effetti di |
Ha esito positivo e il risultato è | Non riesce e il risultato è nessun valore | L'espressione non riesce e gli effetti di entrambi | L'espressione ha esito positivo e vengono confermati solo gli effetti di |
Non riesce e il risultato è nessun valore | Ha esito positivo e il risultato è | L'espressione non riesce e gli effetti di entrambi | L'espressione ha esito positivo e vengono confermati solo gli effetti di |
Non riesce e il risultato è nessun valore | Non riesce e il risultato è nessun valore | L'espressione non riesce e gli effetti di entrambi | L'espressione non riesce e gli effetti di entrambi |
Riferimento degli operatori and e or che valutano le espressioni, rappresentate da p e q.
Matematica
Con le espressioni matematiche puoi eseguire le quattro operazioni matematiche di base (addizione, sottrazione, moltiplicazione e divisione), con valori numerici, e sommare stringhe. Tutti gli operatori utilizzano il formato infisso, ad eccezione di +
e -
che possono anche essere un prefisso dei valori numerici.
Esistono anche operatori di assegnazione, ad esempio set X += 10
. Equivalgono a eseguire l'operazione e poi assegnare il risultato, set X = X + 10
, la differenza è che X
in questo caso viene valutato solo una volta. Il risultato di un operatore di assegnazione è il valore utilizzato per aggiornare la variabile.
La tabella seguente descrive ciascun operatore e i tipi che supporta.
Operatore | Tipi integrati supportati | Descrizione |
---|---|---|
|
| L'operatore |
|
| L'operatore |
|
| L'operatore |
|
| L'operatore |
|
| Con questo operatore è possibile combinare l'addizione e l'assegnazione nella stessa operazione per aggiornare il valore di una variabile. |
|
| Con questo operatore è possibile combinare la sottrazione e l'assegnazione nella stessa operazione per aggiornare il valore di una variabile. |
|
| Con questo operatore è possibile combinare la moltiplicazione e l'assegnazione nella stessa operazione per aggiornare il valore di una variabile. |
|
| Con questo operatore è possibile combinare la divisione e l'assegnazione nella stessa operazione per aggiornare il valore di una variabile, a meno che la variabile non sia un numero intero. Per maggiori dettagli sulla divisione intero, vedi int. |
Query
Le espressioni di query utilizzano l'operatore ?
(query) e controllano se un valore logic
è vero
. In caso contrario, l'espressione non riesce. L'operatore ?
(query) utilizza il formato postfisso.
Risultato dell'espressione p | Risultato dell'espressione p? |
---|---|
| Ha esito positivo e il risultato è |
| Non riesce e il risultato è nessun valore. |
Riferimento per il ? (query) operatore che valuta le espressioni, rappresentato da p.
Ad esempio:
if (IsMorning?):
Say("Good Morning!")