1
有一個簡單的辦法,而不在其外部影響的任何擴展標準庫類像String
一個模塊內的功能的功能呢?例如(無效):安全延伸的標準庫類
module Foo
class String
def hello
"hello #{self}!"
end
end
class Bar
def greet name
name.hello
end
end
end
結果我在尋找:
Foo::Bar.new.greet 'Tom' #=> hello Tom!
'Tom'.hello #=> NoMethodError
我知道像期望的功能創建MyString < String
的解決方案,但我寧願不叫MyString.new('foo')
每我想在模塊中使用一個字符串。
我意識到這可能不被視爲好的做法,我只是希望擴大我對語言的理解。
是的,我很確定他想要改進,這不是誤解。 –
也許,提供一小段代碼來說明如何使用精化? –
是的,當然是一個錯字。一個細化'String'類的代碼片段將是最受歡迎的 –