Re: [問題] 抱歉 請教一下 module 和min-in的觀念

看板Ruby作者 (godfat 真常)時間17年前 (2007/05/28 20:26), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/4 (看更多)
※ 引述《softwind (softwind rising)》之銘言: : 像是混入 Enumerable 和Comparable : 這邊 個人認為很像是 interface觀念 no, 硬要說反而比較像繼承,Java interface 沒有實作的觀念 : 不知道板上大大 有沒有過類似的用法 (實際應用時) 什麼意思?什麼時候不算實際應用? : 再請教一下 guide上面說module是不可以直接實體化的 : 不過 module Math 含有常數 PI, E : 這種常數宣告是類似 class中 class variable的寫法嗎? : (如果是Java 可以用final... 不過 Ruby...?) capitalized words are constants 開頭字母大寫的字是常數,不過他的意思是不能再指向另一個實體, 而非 C++ 中 const 的概念:「物件不能再被更改」。 在 Ruby 中,物件不能再被更改是由內部的 frozen state 記錄。 (上一篇提到的 frozen state 就用在這裡) obj.freeze # now obj is forzen, can't modify any state for now on 至於 Java 的 final 我不太確定… XD 我想 Java 是沒有 C++ const 的概念, 應該比較類似 Ruby 的 capitalized words 吧? module Math PI = 3.1415926 end 像是這樣寫。 : module不能直接實體化 那module是不是不可以包含 : instance variable??? module 的 instance variable 會變成 mixee 的 instance variable module M attr_accessor :test end class C include M end 相近於:(說是相近因為 mixin 其實是 ref 關係而非 meta-programming) class C def test; @test; end def test=(new_test); @test = new_test; end end : 因為 class < aObject 的用法 : 讓小弟覺得很不可思議 (Ruby!=Java ...) 這是什麼意思…?應該不是指 less than operator 吧? 是說 singleton instance 嗎? -- In Lisp, you don't just write your program down toward the language, you also build the language up toward your program. 《Programming Bottom-Up》- Paul Graham 1993 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.58.12
文章代碼(AID): #16MifYFe (Ruby)
文章代碼(AID): #16MifYFe (Ruby)