empty is zero

Scott Morrow scott at elementarysoftware.com
Thu Jul 9 17:56:21 EDT 2009


Hello Mark,

> If you check empty = 0, you'll get false

I DO get false in the message box  but in a handler where there is  
nothing being passed in the parameter I get the following (note that  
expressly putting empty into the parameter variable does give the  
expected result.)



if I call "MyHandler" with this inside a stack script:

on MyHandler tParam  --> where I didn't pass anything in tParam

           put isNumber(tParam) into tParamIsNumber
           put tParam = 0 into  tParamIsZero
           put (tParam is empty) into tParamIsEmpty

end MyHandler



it results in BOTH tParamIsZero = true   AND   tParamIsEmpty = true     
(it is empty and zero?)

also,  tParamIsNumber = false  AND    tParamIsZero  =  true    (it is  
not a number but it is zero?)


If I add the line:    put empty into tParam

on MyHandler tParam

           put empty into tParam
           put isNumber(tParam) into tParamIsNumber
           put tParam = 0 into  tParamIsZero
           put (tParam is empty) into tParamIsEmpty

end MyHandler

then ParamIsZero = false



Thanks for your help.

Scott Morrow
Elementary Software
(Now with 20% less chalk dust!)
web       http://elementarysoftware.com/

On Jul 9, 2009, at 1:56 PM, Mark Schonewille wrote:

> Hi Scott,
>
> If you check empty = 0, you'll get false, but if empty*1 = 0 will  
> return true. AFAIK it has always been like this. I assume that  
> tParam gets parsed when it is passed to a function or command  
> handler. You can change the offending line of your script into: "put  
> tParam is zero and tParam is not empty"
>
> --
> Best regards,
>
> Mark Schonewille

>
> On 9 jul 2009, at 22:18, Scott Morrow wrote:
>
>> I'm having trouble with a script where an empty parameter is  
>> evaluated as being zero.  I've only been using rev 3.5 a short  
>> while so maybe I've missed a setting or new feature?
>> In the message box all works as expected:
>>
>>  put empty into tVariable
>>  put charToNum(tVariable) --> (empty)
>>  put isNumber(tVariable) --> false
>>  put tVariable is zero --> false
>>
>>
>> but in my script, when the parameter is empty I get:
>>
>> on tHandler tParam -- where tParam is empty
>>  put charToNum(tParam) --> (empty)
>>  put isNumber(tParam) --> false
>>  put tParam is zero --> true
>> end tHandler
>>
>> if I explicitly  < put empty into tParam >   inside the script then  
>> all works as expected
>>
>> I've not had a lot of sleep but hoped coffee and a maple bar might  
>> compensate.
>>
>> Scott Morrow



More information about the use-livecode mailing list