尽管变量值作为按值传递

时间:2019-05-02 06:54:12

标签: ruby ruby-on-rails-5 pass-by-reference pass-by-value

我是红宝石的新手,最近发现自己陷入了以下示例。我知道(或至少我读过)红宝石总是按值传递。但是,如果您看到以下示例,则我声明一个空数组variable并将其传递给函数modify。通过modify函数,将8分配给dummy变量。问题是执行修改功能时,我的变量中得到8。如果按值传递ruby,执行 modify 函数后 variable 空数组如何获得值8?

def my_function
  variable = []
  result = modify(variable)
end

def modify(dummy)
  [['first']].map do
    dummy << 8
  end
end

我对通过价值传递通过参考传递

的理解
  • 当参数通过引用传递时,调用者和被调用者对该参数使用相同的变量。如果被调用方修改了参数变量,则效果对调用方的变量可见。
  • 当参数通过值传递时,呼叫者和被呼叫者有两个 具有相同值的自变量。如果被叫方修改了 参数变量,调用者看不到效果。

0 个答案:

没有答案