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 entrambi 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 | 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 Matematica. | 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 Matematica. | 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 Matematica. | operatore infisso | 5 |
|
Assegnazione di 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 Matematica. | operatore infisso | 5 |
|
Uguale a |
| L'operatore | operatore infisso | 4 |
|
Non uguale a |
| L'operatore | operatore infisso | 4 |
|
Minore di |
| 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 |
|
oppure |
| 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 Not 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 di interi, vedi int. |
Query
Le espressioni di query utilizzano l'operatore ? (query) e controllano se un valore logic è true. 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.
Per esempio:
if (IsMorning?):
Say("Good Morning!")