Re: pass by reference

new topic     » goto parent     » topic index » view thread      » older message » newer message

On Tuesday 12 February 2002 12:07 pm, Bernie Ryan wrote:
>
>
> I keep reading that you can't use pass by reference
> in Euphoria. That is not true. You can use pass by
> reference on any variable or atom or any fixed
> length structure. The only thing you can't pass by
> reference is a sequence because it is dynamic and
> there is no way to control the errors that would
> be caused by a user. The way you pass by reference
> is to use allocates, peeks and pokes.

er...no, that's pass-by-value. 
If I call foo(integer x) as follows:

x = 3
foo(x)
? x => 3

No matter what happens inside the mysterious foo, x is still what it was 
before calling the function.
Even if foo sets x to 99, it's only 99 while inside the foo routine.
So foo is working with a copy of x, not the real x.

Pass-by_reference passes the actual variable, not a copy, so that 
foo(var integer x)
 x = 99
end 

x = 3
foo(x)
? x  => 99

The variable IS changed within the routine, and remains changed afterward.

Regards,
Irv

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu