passing parameters in a send call.
livfoss at mac.com
Mon May 22 11:00:31 EDT 2006
On Sun, 21 May 2006 15:28:28 -0600, Dar Scott <dsc at swcp.com> wrote
> On May 21, 2006, at 3:01 PM, Sarah Reichelt wrote:
>> I always use something like:
>> send "myAdd " & pArrayA to stack "someStack"
>> so that the variable is evaluated before the send.
> Hi, Sarah!
> I'll pick on two aspects of that.
> First of all, I haven't been convinced that there are any merits to
> send "myCmd " & x & comma & y to ...
> Over this:
> send "myCmd x, y" to ...
> And it has some potential problems, such as when x contains a comma.
> (Also, the latter lends itself to some future (I hope) compiler
> optimization that compiles code that does not require runtime
> Second, in this particular case where pArrayA is an array, the
> expression '"myAdd " & pArrayA' will resolve to "myAdd ". The array
> value looks empty to '&'.
Isn't it true that
send "myCmd x,y" to...
just sends that exact string (minus the quotes) to the target: if
so, the target environment can only resolve x and y if it's in the
same name space as the script that did the sending (I mean if it is
able to evaluate x and y), which is in general not true (after all,
the point of handler parameters is to pass information from one
context to another). So if I'm right
send "myCmd"& x &","& y to...
first evaluates x and y in the context of the sender (which is what
Sarah said) and therefore achieves the expected result, whereas the
other method doesn't. Arrays being a special case may not work
anyway, but I'm trying to make a more general point.
I hope what I've just written makes sense.
Graham Samuel / The Living Fossil Co. / UK and France
More information about the Use-livecode