Operatori
Operatori del linguaggio di script TapHome: operatori aritmetici, di confronto, bit a bit e logici, i loro 10 livelli di precedenza, la trappola a & 1 > 0, la valutazione a corto circuito e gli equivalenti in Excel.
Elenco degli operatori
Il linguaggio di script ha operatori aritmetici, di confronto, bit a bit e logici:
| Gruppo | Operatori | Esempio |
|---|---|---|
| Unari | - (negazione), +, ! (NOT logico) | !IsRaining |
| Moltiplicativi | *, / | (20.5 + 9.5) / 2 è 15 |
| Additivi | +, - | "T=" + Te unisce testo |
| Scorrimento | <<, >> | 8 << 2 è 32 |
| Relazionali | <, <=, >, >= | Te > 25 |
| Uguaglianza | = (uguale), <> o != (diverso) | Mode <> 2 |
| AND bit a bit | & | 3 & 1 è 1 |
| OR, XOR bit a bit | |, ^ | 2 | 1 è 3 |
| Logici | AND, XOR, OR | Te > 25 AND Hu > 60 |
| Assegnazione | := e le forme composte +=, -=, *=, /=, <<=, >>=, &=, |=, ^= | x += 1 |
XOR su due numeri è uno XOR bit a bit: 5 XOR 1 è 4. Su TRUE e FALSE è lo XOR logico.
Il linguaggio non ha NOT, ==, %, **, && né ||. Usa !, =, MOD, POWER, AND e OR. 1 == 1 fallisce con Wrong number of literals and operators in expression, NOT x con Unknown variable or constant 'NOT'.
Precedenza
Gli operatori vengono valutati in questo ordine, dalla precedenza più alta alla più bassa. Gli operatori dello stesso livello vengono valutati da sinistra a destra; le parentesi ( ) modificano l’ordine.
*/+-<<>><<=>>==<>!=&|^ANDXOROR
A differenza di C o JavaScript, gli operatori bit a bit legano più strettamente di
ANDeOR, ma meno dei confronti.a & 1 > 0significaa & (1 > 0). Scrivi sempre(a & 1) > 0.
VAR flags := 2;
flags & 2 > 0;
# Result: 0, read as flags & (2 > 0), which is flags & 1
(flags & 2) > 0;
# Result: TRUEUn’assegnazione composta ha la precedenza della sua operazione: x -= a - b viene valutato come (x -= a) - b e x *= 1 + 2 come (x *= 1) + 2. Metti il lato destro tra parentesi:
VAR total := 10;
total -= (a - b);Valutazione a corto circuito
AND e OR valutano il lato destro solo quando il lato sinistro non decide ancora il risultato. XOR valuta sempre entrambi i lati. Una condizione può quindi proteggere l’espressione accanto:
va2 <> 0 AND va1 / va2 > 1;
# Result: FALSE when va2 is 0, without the Division by zero errorIl lato destro non viene valutato quando va2 è 0. La stessa protezione per un valore è IF, che valuta solo il ramo selezionato.
Equivalenti in Excel
Gli operatori sui bit corrispondono a queste funzioni di Excel e Google Sheets:
| TapHome | Excel, Google Sheets | Esempio |
|---|---|---|
a & b | BITAND(a, b) | 3 & 1 è 1 |
a | b | BITOR(a, b) | 2 | 1 è 3 |
a ^ b | BITXOR(a, b) | 6 ^ 3 è 5 |
a << n | BITLSHIFT(a, n) | 8 << 2 è 32 |
a >> n | BITRSHIFT(a, n) | 32 >> 2 è 8 |
In Excel
^è una potenza; in TapHome è lo XOR bit a bit. Per le potenze usaPOWER.IF,AND,OReMODhanno lo stesso significato in entrambi, ma in TapHomeANDeORsono operatori posti tra gli operandi.
Guarda l’esempio di operazioni sui bit in Google Sheets: https://docs.google.com/spreadsheets/d/1hF5FMpGMJbgYh-YLwWrq2n186_ATyGyLUb689__IhLY/edit?usp=sharing, oppure prova lo strumento interattivo su http://bitwisecmd.com/. Le funzioni che leggono e scrivono singoli bit e byte sono nella pagina Operazioni sui bit.