我如何在红宝石中阻止一个函数,如下所示?
change_me! (val)
更新:
我打算这样做:
def change_me! (val)
  val = val.chop while val.end_with? '#' or val.end_with? '/'
end
这最终结果......
change_me! 'test#///'     => "test#///" 
Tre*_*oke 18
你正在考虑这个错误的方法.虽然可以在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
希望这个对你有帮助..
你想这样做:
def change_me(val)
  val.replace "#{val}!"
end
这将使用新值替换该值.但请相信我:你通常不想以这种方式设计你的ruby代码.开始考虑对象和类.设计没有副作用的代码.它会省去很多麻烦.
| 归档时间: | 
 | 
| 查看次数: | 8098 次 | 
| 最近记录: |