Re: [問題] 抱歉 請教一下 module 和min-in的觀念
※ 引述《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
討論串 (同標題文章)
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章