How to pass numeric variables by reference?


#1

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

void foo (int* x)
{

}


#2

From: Eric C. removed_email_address@domain.invalid
Subject: How to pass numeric variables by reference?
Date: Fri, 9 Dec 2005 13:23:36 +0900

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”


#3

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