Operátory
Operátory skriptovacieho jazyka TapHome: aritmetické, porovnávacie, bitové a logické operátory, ich 10 úrovní priority, pasca a & 1 > 0, skrátené vyhodnocovanie a ekvivalenty v Exceli.
Zoznam operátorov
Skriptovací jazyk má aritmetické, porovnávacie, bitové a logické operátory:
| Skupina | Operátory | Príklad |
|---|---|---|
| Unárne | - (negácia), +, ! (logické NOT) | !IsRaining |
| Multiplikatívne | *, / | (20.5 + 9.5) / 2 je 15 |
| Aditívne | +, - | "T=" + Te spojí text |
| Posuny | <<, >> | 8 << 2 je 32 |
| Relačné | <, <=, >, >= | Te > 25 |
| Rovnosť | = (rovná sa), <> alebo != (nerovná sa) | Mode <> 2 |
| Bitové AND | & | 3 & 1 je 1 |
| Bitové OR, XOR | |, ^ | 2 | 1 je 3 |
| Logické | AND, XOR, OR | Te > 25 AND Hu > 60 |
| Priradenie | := a zložené tvary +=, -=, *=, /=, <<=, >>=, &=, |=, ^= | x += 1 |
XOR nad dvoma číslami je bitové XOR: 5 XOR 1 je 4. Nad TRUE a FALSE je to logické XOR.
Jazyk nemá NOT, ==, %, **, && ani ||. Použite !, =, MOD, POWER, AND a OR. 1 == 1 skončí chybou Wrong number of literals and operators in expression, NOT x chybou Unknown variable or constant 'NOT'.
Priorita
Operátory sa vyhodnocujú v tomto poradí, od najvyššej priority po najnižšiu. Operátory rovnakej úrovne sa vyhodnocujú zľava doprava; zátvorky ( ) poradie menia.
*/+-<<>><<=>>==<>!=&|^ANDXOROR
Na rozdiel od jazykov C či JavaScript sa bitové operátory viažu silnejšie ako
ANDaOR, ale slabšie ako porovnania.a & 1 > 0znamenáa & (1 > 0). Vždy píšte(a & 1) > 0.
VAR flags := 2;
flags & 2 > 0;
# Result: 0, read as flags & (2 > 0), which is flags & 1
(flags & 2) > 0;
# Result: TRUEZložené priradenie má prioritu svojej operácie: x -= a - b sa vyhodnotí ako (x -= a) - b a x *= 1 + 2 ako (x *= 1) + 2. Pravú stranu dajte do zátvoriek:
VAR total := 10;
total -= (a - b);Skrátené vyhodnocovanie
AND a OR vyhodnotia pravú stranu iba vtedy, keď ľavá strana o výsledku ešte nerozhodla. XOR vyhodnocuje vždy obe strany. Podmienka preto môže chrániť výraz vedľa seba:
va2 <> 0 AND va1 / va2 > 1;
# Result: FALSE when va2 is 0, without the Division by zero errorKeď je va2 rovné 0, pravá strana sa nevyhodnotí. Rovnakú ochranu pre hodnotu poskytuje IF, ktoré vyhodnotí iba zvolenú vetvu.
Ekvivalenty v Exceli
Bitovým operátorom zodpovedajú tieto funkcie Excelu a Google Sheets:
| TapHome | Excel, Google Sheets | Príklad |
|---|---|---|
a & b | BITAND(a, b) | 3 & 1 je 1 |
a | b | BITOR(a, b) | 2 | 1 je 3 |
a ^ b | BITXOR(a, b) | 6 ^ 3 je 5 |
a << n | BITLSHIFT(a, n) | 8 << 2 je 32 |
a >> n | BITRSHIFT(a, n) | 32 >> 2 je 8 |
V Exceli je
^mocnina; v TapHome je to bitové XOR. Na mocniny použitePOWER.IF,AND,ORaMODmajú v oboch rovnaký význam, ale v TapHome súANDaORoperátory, ktoré sa píšu medzi operandy.
Pozrite si príklad bitových operácií v Google Sheets: https://docs.google.com/spreadsheets/d/1hF5FMpGMJbgYh-YLwWrq2n186_ATyGyLUb689__IhLY/edit?usp=sharing, alebo vyskúšajte interaktívny nástroj na http://bitwisecmd.com/. Funkcie, ktoré čítajú a zapisujú jednotlivé bity a bajty, sú na stránke Bitové operácie.