Följande standardoperatorer för jämförelse stöds i GEL och har de uppenbara betydelserna: ==
, >=
, <=
, !=
, <>
, <
, >
. De returnerar true
eller false
. Operatorerna !=
och <>
är samma sak och betyder ”är inte lika med”. GEL stöder även operatorn <=>
som returnerar -1 om vänstersidan är mindre, 0 om båda sidor är lika, 1 om vänstersidan är större.
Normally =
is translated to ==
if
it happens to be somewhere where GEL is expecting a condition such as
in the if condition. For example
if a=b then c
if a==b then c
are the same thing in GEL. However you should really use
==
or :=
when you want to compare
or assign respectively if you want your code to be easy to read and
to avoid mistakes.
Alla jämförelseoperatorerna (förutom <=>
-operatorn, vilken beter sig normalt) är inte strikt binära operatorer, de kan i själva verket grupperas på det vanliga matematiska sättet, t.ex. så är (1<x<=y<5
) ett giltigt booleskt uttryck och betyder precis vad det borde, det vill säga (1<x och x≤y och y<5)
Använd orden not
, and
, or
, xor
för att bygga upp logiska uttryck. Operatorerna or
och and
är speciella eftersom de evaluerar sina uttryck ett efter ett, så det vanliga tricket för villkorlig evaluering fungerar även här. Till exempel kommer 1 or a=1
inte att ställa in a=1
eftersom det första argumentet var true (sant).