通过引用Ruby中的函数传递变量

时间:2014-12-17 14:43:42

标签: ruby methods parameter-passing pass-by-reference

我想通过引用函数来传递变量。 这样,在这个函数中,变量可以被修改,新值也可以在程序的一部分中使用

e.g。

在soft_1.rb

 func=Remote::CheckPart.new()  # function defined in check.rb
 warning=""
 out=func.check(warning)
 puts "New Warning #{warning}!"

在check.rb

def check(warning)
    warning << "WARNING DUE TO SOME EVENT!"
end

1 个答案:

答案 0 :(得分:3)

你不能通过引用来传递ruby。

另一方面,ruby中的String不是不可变的,因此使用<<实际上会更改您传递的字符串 - 因此您的代码实际上可以按照您的需要运行到:

class Remote::CheckPart
  def check(warning)
    warning << "WARNING DUE TO SOME EVENT!"
  end
end

func=Remote::CheckPart.new()
warning=""
out=func.check(warning)
puts "New Warning #{warning}!"

实际输出:

New Warning WARNING DUE TO SOME EVENT!!

相关问题