I don't see any anomaly here. Since the intermediate function calls yet another
function, it never needs to "close", that is, return, a value. It is a
pass-through entity, a card carrying member of the chain of handler calls. Step
through this variation:
on mouseUp
put double(2) into myVar1
answer myVar1
end mouseUp
function double var
put redouble(var * 2) into myVar2 -- no return in this function
end double
function redouble var
return var * 2
end redouble
The "8" you get is processed sequentially through the handler path, just like
bacon.
Craig Newman
-----Original Message-----
From: Tiemo Hollmann TB <[email protected]>
To: 'How to use LiveCode' <[email protected]>
Sent: Fri, Nov 14, 2014 3:47 am
Subject: how are variables passed from functions?
By accident I noticed that I don't have a return at a certain point of a
function but nevertheless the value was passed back without a return to the
calling handler.
I can reproduce the issue to this scenario:
--Btn script
on mouseUp
put foo1() into myVar1 -- I get the value "Test"
end mouseUp
--script in stack
function foo1
put foo2() into myVar2 -- no return in this function
end foo1
function foo2
return "Test" -- return here in second level
end foo2
Up to now I thought that every function has to have a return statement if
you want anything getting back.
Can somebody explain to me what is going on here? How is the value from
function foo2 passed back to the mouseup handler, even with different var
names?
Is this a bug or just an accident or even wanted?
Thanks for enlightening
Tiemo
_______________________________________________
use-livecode mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode
_______________________________________________
use-livecode mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode