https://foro.gambas-es.org/viewtopic.php?f=1&t=4670&p=26856#p26856
-----------------------------------
shordi
Sabado, 06 Junio 2015, 06:28

Re: ¿ Fallo Del Operador Ternario IIF ?
-----------------------------------
Claro que ejecuta las dos, ¿Cómo va a saber entonces si es cierta o falsa?
Tal vez te extrañe que, si la primera es cierta...¿Para qué continuar evaluando la segunda? 
Repuesta: Gambas es así.
En otros compiladores existía la optimización en las evaluaciones y la evaluación se interrumpía una vez que era manifiestamente cierta o falsa. 
En Gambas no y es un problema con los nulos.
Si tienes una clase, variable, lo que sea y preguntas algo así:
[code linenumbers=false syntax=gambas]
if mivariable=0 or isnull(mivariable) then [/code]

Obtendrás un error en la primera comparación "expecting number obtainded NULL".
No problemo, te dices tú muy astuto, lo pregunto al revés:
[code linenumbers=false syntax=gambas]if isnull(mivariable) or mivariable=0[/code]
y todo arreglado.
Pues no, te repite el mismo error.

Es lo que hay.


