Operátorok
A TapHome szkriptnyelv operátorai: aritmetikai, összehasonlító, bitenkénti és logikai operátorok, a 10 precedenciaszint, az a & 1 > 0 csapda, a rövidzáras kiértékelés és az Excel megfelelők.
Az operátorok listája
A szkriptnyelvben aritmetikai, összehasonlító, bitenkénti és logikai operátorok vannak:
| Csoport | Operátorok | Példa |
|---|---|---|
| Egyoperandusú | - (negálás), +, ! (logikai tagadás) | !IsRaining |
| Szorzás jellegű | *, / | (20.5 + 9.5) / 2 értéke 15 |
| Összeadás jellegű | +, - | "T=" + Te szöveget fűz össze |
| Léptetés | <<, >> | 8 << 2 értéke 32 |
| Relációs | <, <=, >, >= | Te > 25 |
| Egyenlőség | = (egyenlő), <> vagy != (nem egyenlő) | Mode <> 2 |
| Bitenkénti ÉS | & | 3 & 1 értéke 1 |
| Bitenkénti VAGY, XOR | |, ^ | 2 | 1 értéke 3 |
| Logikai | AND, XOR, OR | Te > 25 AND Hu > 60 |
| Értékadás | := és a +=, -=, *=, /=, <<=, >>=, &=, |=, ^= összetett alakok | x += 1 |
Az XOR két számon bitenkénti XOR: az 5 XOR 1 értéke 4. TRUE és FALSE értékeken logikai XOR.
A nyelvben nincs NOT, ==, %, **, && és ||. Ezek helyett használd a !, =, MOD, POWER, AND és OR jelölést. Az 1 == 1 a Wrong number of literals and operators in expression, a NOT x az Unknown variable or constant 'NOT' hibával leáll.
Precedencia
Az operátorok kiértékelése ebben a sorrendben történik, a legmagasabb precedenciától a legalacsonyabbig. Az azonos szintű operátorok balról jobbra értékelődnek ki; a ( ) zárójelek felülírják a sorrendet.
*/+-<<>><<=>>==<>!=&|^ANDXOROR
A C és a JavaScript nyelvvel ellentétben a bitenkénti operátorok erősebben kötnek, mint az
ANDés azOR, de gyengébben, mint az összehasonlítások. Aza & 1 > 0jelentésea & (1 > 0). Mindig így írd:(a & 1) > 0.
VAR flags := 2;
flags & 2 > 0;
# Result: 0, read as flags & (2 > 0), which is flags & 1
(flags & 2) > 0;
# Result: TRUEAz összetett értékadás precedenciája a műveletéé: az x -= a - b kiértékelése (x -= a) - b, az x *= 1 + 2 kiértékelése (x *= 1) + 2. A jobb oldalt tedd zárójelbe:
VAR total := 10;
total -= (a - b);Rövidzáras kiértékelés
Az AND és az OR csak akkor értékeli ki a jobb oldalt, ha a bal oldal még nem dönti el az eredményt. Az XOR mindig mindkét oldalt kiértékeli. Egy feltétel ezért megvédheti a mellette álló kifejezést:
va2 <> 0 AND va1 / va2 > 1;
# Result: FALSE when va2 is 0, without the Division by zero errorHa a va2 értéke 0, a jobb oldal nem értékelődik ki. Egy érték esetében ugyanezt a védelmet az IF adja, amely csak a kiválasztott ágat értékeli ki.
Excel megfelelők
A bitoperátorok a következő Excel és Google Táblázatok függvényeknek felelnek meg:
| TapHome | Excel, Google Táblázatok | Példa |
|---|---|---|
a & b | BITAND(a, b) | 3 & 1 értéke 1 |
a | b | BITOR(a, b) | 2 | 1 értéke 3 |
a ^ b | BITXOR(a, b) | 6 ^ 3 értéke 5 |
a << n | BITLSHIFT(a, n) | 8 << 2 értéke 32 |
a >> n | BITRSHIFT(a, n) | 32 >> 2 értéke 8 |
Az Excelben a
^hatványozás; a TapHome-ban bitenkénti XOR. Hatványozáshoz használd aPOWERfüggvényt. AzIF, azAND, azORés aMODmindkettőben ugyanazt jelenti, de a TapHome-ban azANDés azORaz operandusok közé írt operátor.
Nézd meg a bitműveletek példáját a Google Táblázatokban: https://docs.google.com/spreadsheets/d/1hF5FMpGMJbgYh-YLwWrq2n186_ATyGyLUb689__IhLY/edit?usp=sharing, vagy próbáld ki az interaktív eszközt: http://bitwisecmd.com/. Az egyes bitek és bájtok olvasására és írására szolgáló függvények a Bitműveletek oldalon találhatók.