how are variables passed from functions?
dunbarx at aol.com
dunbarx at aol.com
Fri Nov 14 10:12:18 EST 2014
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 <toolbook at kestner.de>
To: 'How to use LiveCode' <use-livecode at lists.runrev.com>
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
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