我知道我可以執行下面的方法添加到String類模塊中的公開課
class String
def do_something
puts self.size
end
end
var = "test"
var.do_something
,這將返回4
我希望能夠有一個模塊的功能它需要一個字符串,但能夠在這個字符串上調用do_something
方法(例如見下文) - 是否有可能?
編輯:不工作
module TestModule
class String
def do_something
puts self.size
end
end
def self.test(str)
str.do_something
end
end
這增加了代碼示例給出了錯誤:undefined method 'do_something' for "hello":String (NoMethodError)
是的。您的代碼完全按照書面形式工作當您在String中定義doSomething時,它在所有範圍內的所有字符串上都可用。 – 2011-04-16 18:33:59
@John Douthat它不工作,我已編輯的問題,以顯示什麼代碼即時運行 – Aly 2011-04-16 18:41:48
你是否只想讓字符串在你的模塊的範圍內具有該功能? – Dogbert 2011-04-16 18:48:09