TapHome

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:

SkupinaOperátoryPrí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, ORTe > 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.

  1. * /
  2. + -
  3. << >>
  4. < <= > >=
  5. = <> !=
  6. &
  7. | ^
  8. AND
  9. XOR
  10. OR

Na rozdiel od jazykov C či JavaScript sa bitové operátory viažu silnejšie ako AND a OR, ale slabšie ako porovnania. a & 1 > 0 znamená 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: TRUE

Zlož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 error

Keď 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:

TapHomeExcel, Google SheetsPríklad
a & bBITAND(a, b)3 & 1 je 1
a | bBITOR(a, b)2 | 1 je 3
a ^ bBITXOR(a, b)6 ^ 3 je 5
a << nBITLSHIFT(a, n)8 << 2 je 32
a >> nBITRSHIFT(a, n)32 >> 2 je 8

V Exceli je ^ mocnina; v TapHome je to bitové XOR. Na mocniny použite POWER. IF, AND, OR a MOD majú v oboch rovnaký význam, ale v TapHome sú AND a OR operá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.