【问题标题】: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 不是不可变的,因此使用&lt;&lt; 实际上会更改您传递的字符串 - 因此您的代码实际上可以按照您的意愿工作:

    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!!

    【讨论】:

      猜你喜欢
      • 2019-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-05
      • 1970-01-01
      • 2011-09-01
      • 1970-01-01
      • 2010-09-14
      相关资源
      最近更新 更多