默认情况下,ruby传递原始值的副本和对象类型的引用。如何将primitive
类型变量(例如:整数,浮点)的引用传递给函数?
答案 0 :(得分:4)
Ruby不通过引用传递参数:
def change(x)
x = 2 # this assigns to a local variable 'x'
end
a = 1
change(a)
a #=> 1
您可以改为传递可变对象,例如哈希“包含”整数:
def change(h)
h[:x] = 2
end
h = {x: 1}
change(h)
h[:x] #=> 2
答案 1 :(得分:3)
Ruby不能那样工作。没有指针,如果这是你的意思和它。参数由 value 传递,但这些值本身就是对内存中对象的引用。
你所谓的“原语”(例如值1
)实际上是Ruby中的不可变对象,因此指向它们是没有意义的。传递包含该对象的变量是可行的方法。
我很想知道你想要达到的目标。