Is zero the same as empty?
dunbarx at aol.com
dunbarx at aol.com
Mon Oct 27 16:10:49 EDT 2014
OK,
You can simply declare a variable, ostensibly empty, and the engine will watch your back if you try to add something to it. But you cannot both declare and add in the same line of code. So there is another level of declaration, perhaps because it occurs in the very same line as the test arithmetic, that breaks:
on mouseUp
put b + 3
end mouseUp
This is similar to but "below" the extra level of evaluation that we know as a "do" construction. It is deeper, closer to the heart of the engine, perhaps, that was never addressed (or ignored for other reasons)? Because this does not work, though one might think it should:
on mouseUp
do "put b + 3"
end mouseUp
Craig
-----Original Message-----
From: J. Landman Gay <jacque at hyperactivesw.com>
To: How to use LiveCode <use-livecode at lists.runrev.com>
Sent: Mon, Oct 27, 2014 3:16 pm
Subject: Re: Is zero the same as empty?
On 10/27/2014, 1:55 PM, dunbarx at aol.com wrote:
> on mouseUp
> local b
> answer b + 1
> end mouseUp
>
>
> Also works just fine, thank you, and therefore the engine still knows what to
do
Right, because even if you put empty into the variable first (as in your
second message) the act of doing a math calculation forces the variable
to zero. It happens internally, so you don't see it.
put empty into b
put b = zero -- false
put b+1 -- 1, because empty has converted to zero internally
put b = zero -- false
The point being that until it is used, empty can be either empty or
zero. Usage determines the value. However, the last line above will put
"false", because the engine restores the original value if it was specified.
This throws an error:
on mouseUp
put b = zero -- false
put b = "" -- false
put b+1 -- ERROR
end mouseUp
So we can apparently confuse the engine into not knowing what the value
should be.
--
Jacqueline Landman Gay | jacque at hyperactivesw.com
HyperActive Software | http://www.hyperactivesw.com
_______________________________________________
use-livecode mailing list
use-livecode at lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode
More information about the use-livecode
mailing list