爲什麼這不起作用?爲什麼`發送`失敗與Ruby 2.0精化?
module StringRefinement
refine String do
def bar
length
end
end
end
using StringRefinement
"abcdefghijklmnopqrstuvwxyz".send(:bar)
#NoMethodError: undefined method 'bar' for "abcdefghijklmnopqrstuvwxyz":String
有人可以解釋爲什麼send
在這裏不起作用嗎?有沒有一種方法來動態調用在精化中定義的方法?我似乎無法找到關於Ruby 2.0中的精化如何工作的完整解釋。
因爲它是實驗性的嗎? – texasbruce 2013-03-07 05:20:47
@oldergod真的嗎?我只是通過將上面的代碼直接複製並粘貼到pry並收到完全相同的錯誤而再次嘗試。我也使用2.0.0-p0。你確定你正在做我發佈的內容嗎? – 2013-03-07 05:43:23
@SeanMackesey你是對的,我的不好。 – oldergod 2013-03-07 05:45:58