Ruby:如何更改函数调用中参数的值?

标签 ruby

我将如何在 ruby​​ 中实现一个函数,如下所示?

change_me! (val)

更新:

我打算做的是:

def change_me! (val)
  val = val.chop while val.end_with? '#' or val.end_with? '/'
end

这刚刚结束......

change_me! 'test#///'     => "test#///" 

最佳答案

您的想法是错误的。虽然可以在 Ruby 中执行此操作,但它会过于复杂。正确的做法是:

val.change_me!

当然,这取决于您要更改的类别。关键是,按照惯例,带有“!”的方法影响调用它们的类实例。 所以……

class Changeable
  def initialize var
    @var = var
  end

  def change_me! change=1
    @var += change
  end
end

a = Changeable.new 5 # => New object "Changeable", value 5
a.change_me! 6 # => @var = 7
a.change_me! # => @var = 8

希望这对您有所帮助..

关于Ruby:如何更改函数调用中参数的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2266413/

相关文章:

ruby - rspec 中的 while 循环

ruby - RSpec3 模拟参数期望 - 使用 &block?

ruby-on-rails - Rails 如何根据日期范围创建月份数组

ruby-on-rails - 添加新字段导致错误

ruby-on-rails - 使用电子表格 gem 的自定义颜色

ruby - 如何通过 ARGV 打印我正在使用的文件的行号?

ruby - 将 unicode 字符串转换为 Ruby 中的字符?

ruby - Rails 中的 FactoryGirl - 具有唯一约束的关联

ruby - 如何在低内存系统上使用 RVM 编译 ruby​​?

javascript - Rails 4 - 通过 ajax 在引导模式中显示数据