How to pass numeric variables by reference?

What's the Ruby way of achieving pass-by-reference for numbers, as in
the C code

void foo (int* x)
{

}

···

--
Posted via http://www.ruby-forum.com/.

What's the Ruby way of achieving pass-by-reference for numbers, as in
the C code

Array can do it.

def f(a)
  a[0] = 10
end

a = [1]
f(a)
a[0] == 10 or raise
puts "ok"

···

From: Eric Christensen <ericrchr@gmail.com>
Subject: How to pass numeric variables by reference?
Date: Fri, 9 Dec 2005 13:23:36 +0900

--
rubikitch

probably assign on callback. In other words, Ruby doesn't have
a direct pass-by-reference operation for numbers,
but you can easily achieve the same result.

using irb:

  10 :> def foo(c,d)
return c+1, d+2
end
     ==> nil
  13 :> a,b = 5,6
     ==> [5, 6]
  14 :> puts a,b
5
6
     ==> nil
  15 :> a,b = foo(a,b)
     ==> [6, 8]
  16 :> puts a,b
6
8

Eric Christensen wrote:

···

What's the Ruby way of achieving pass-by-reference for numbers, as in the C code

void foo (int* x)
{

}