推 mars90226:每次include一個module時,module就會被加進ancestors 05/21 00:00
→ mars90226:你說的部分是指如果出現同名method,則從ancestors往上 05/21 00:01
→ mars90226:找,越晚加入的ancestor的method越先使用 05/21 00:02
→ mars90226:你目前是印ancestors,所以當然就是照著include順序 05/21 00:03
→ mars90226:的反過來就是了 05/21 00:03
您的意思是說,要是method有相同的名稱的話才會先找,不然就會照著排序由下往上找嗎?
感謝你的回覆!!
※ 編輯: timeregorge (1.175.57.146), 05/21/2014 10:38:02
→ mars90226:不,不管甚麼method,都是從下往上找 05/21 10:46
→ mars90226:你的問題是ancestors順序嗎? 這個順序是從下往上沒錯 05/21 10:48
→ putumaxally:我也沒有看到有相同名稱的 method, 這個例子舉的不好 06/01 00:24
→ putumaxally:這是哪裡的範例?? 06/01 00:25
您好,因為我是在gotealeaf自學,這是gotealeaf他們自己編的教材的樣子
因為是初學者 所以我其實也看得霧煞煞xd
※ 編輯: timeregorge (218.164.112.42), 06/02/2014 23:59:29
推 lTERRAl:混合繼承的狀況 其實不用想的這麼複雜 06/07 01:56
→ lTERRAl:由於ruby不讓你實際做多重繼承 (看看精美的C++...friend) 06/07 01:58
→ lTERRAl:多重繼承帶來非常多混亂的問題 尤其大家都是friend... 06/07 01:59
→ lTERRAl:所以ruby改用 composition 的方式來做成相同效果 06/07 02:02
→ lTERRAl:先寫成module再掛進class 好處是永遠只處理單一線父子關係 06/07 02:03
→ lTERRAl:壞處就是每當想要掛多個模組 就必須寫出多個module來掛 06/07 02:06