我正在构建一个需要返回几个变量的函数,并且想知道是否存在使用C ++&在函数的变量声明中。这样我就可以做到以下几点:
def function(variable &, variable2 &)
variable = foo
variable2 = foo
end
我明白我可以使用return函数,但是我传递的变量数量,在代码中看起来不太好看。
答案 0 :(得分:1)
Ruby不支持引用变量的概念。
相反,您可以通过返回值的数组来返回多个值...
def my_method
return [3, 4]
end
......和" splatting"将结果转换为一个或多个变量
x, y = my_method
# x => 3
# y => 4
答案 1 :(得分:0)
假设你想要通过引用传递,那么在ruby中执行此操作的方法是定义一个带有访问器的类结构类:
class MyStruct
attr_accessor :variable, :variable2
end
def function(mystruct)
mystruct.variable = foo
mystruct.variable2 = foo
end
然后,您可以使用元编程来缩短函数的内部。显然,这不像纯粹的传递参考解决方案那么干净,但它提供了一种解决方法。