Ruby中的函数(Variable&)C ++等价物

时间:2014-04-07 15:44:32

标签: ruby methods syntax

我正在构建一个需要返回几个变量的函数,并且想知道是否存在使用C ++&在函数的变量声明中。这样我就可以做到以下几点:

def function(variable &, variable2 &)
     variable = foo
     variable2 = foo
end

我明白我可以使用return函数,但是我传递的变量数量,在代码中看起来不太好看。

2 个答案:

答案 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

然后,您可以使用元编程来缩短函数的内部。显然,这不像纯粹的传递参考解决方案那么干净,但它提供了一种解决方法。