Re: [Ruby] overload?!

看板Ruby作者 (godfat 真常)時間18年前 (2006/09/23 02:14), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/5 (看更多)
補充一下… ※ 引述《WanCW (旺小王)》之銘言: : 有了這個 module ,我們就可以這樣寫: : class Test : include OverLoad : def foo : puts 'original foo' : end : overload :foo do |a,b| 由於這是 function call, 所以等同於 self.overload(:foo) do |a, b| : puts a+b : end : overload :foo, String, String do |a,b| 這個等同於 self.overload(:foo, String, String) do |a,b| : puts "the String is #{a} #{b}" : end : end : 動態語言果然是好物! (Y) 方便是方便,但不知道這樣會不會使效能變很差 變很差的時候,有什麼好方法將他快速改回原本的 func call? 例如把上面的 foo 改成: def foo #... end def foo_a_b(a, b) #... end def foo_String_String(a, b) #... end 當然呼叫端也要改,感覺這可能需要寫 parser 不過既然都要寫成 parser 了,有沒有可能直接改成使用設定值? class Test include OverLoad # 不是 Overlord 啊… def foo #... end def foo_a_b(a, b) #... end def foo_String_String(a, b) #... end overload_on :foo_a_b, :foo_String_String end 不過這樣的問題是,外界到底該怎麼呼叫 foo...? 不寫 parser 好像不太可能解決…? -- Hear me exalted spirits. Hear me, be you gods or devils, ye who hold dominion here: I am a wizard without a home. I am a wonderer seeking refuge. Sacrifice -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.232.7.227
文章代碼(AID): #1552VmlJ (Ruby)
討論串 (同標題文章)
本文引述了以下文章的的內容:
18年前, 09/22
以下文章回應了本文
1
1
完整討論串 (本文為第 2 之 5 篇):
18年前, 09/22
1
1
文章代碼(AID): #1552VmlJ (Ruby)