【问题标题】:Pass a variable by reference to a function in Ruby通过引用 Ruby 中的函数来传递变量
【发布时间】:2015-02-16 03:37:00
【问题描述】:
我想通过引用一个函数来传递一个变量。
这样,在这个函数中,变量可以被修改,新的值也将在程序的一部分中可用
例如
在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
【问题讨论】:
标签:
ruby
methods
parameter-passing
pass-by-reference
【解决方案1】:
你不能通过对 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!!