重新打开String类并在Ruby中添加.upcase方法

时间:2016-03-26 00:20:01

标签: ruby string class methods upcase

任务:在Ruby中,我必须重新打开String类并添加一个调用upcase方法的新功能my_new_method。

"abc".my_new_method

返回

"ABC"

我已尝试使用此代码,但测试表示错误的参数数量(0表示1)

# Re-open String class
class String
  # Add the my_new_method method.
  def my_new_method(value)
    value.upcase
  end
end

测试

Test.expect "abc".my_new_method == "ABC"

我知道我不必提出论据(价值),但我不知道如何处理以前写过的字符串。

请尽力帮助我。提前谢谢!

1 个答案:

答案 0 :(得分:2)

只要你小心,扩展核心类就可以了,特别是在重写核心方法时。

请记住,只要您在实例方法中,self总是引用实例:

def my_special_upcase
  self.upcase + '!'
end

所以self指的是有问题的字符串。