class b
class
puts "old"
endend
endclass
def hello
puts "new"
endend
endb.hello
執行結果為new
class b
class
puts "old"
endend
endclass
def hello
puts "new"
endend
endb.hello
執行結果為old
這幾段**的作用都是開啟類b的單例類,判斷是否定義了hello方法,如果未定義,則定義這個方法,但是第一段和第二段**的執行結果大相徑庭。再看兩段**
class b
def self.hello
puts "old"
endend
class
def hello
puts "new"
endend
endb.hello
執行結果為new
class b
def self.hello
puts "old"
endend
class
def hello
puts "new"
endend
endb.hello
輸出為old
一樣的結果 百思不得其解
ruby的單例方法
begin 在ruby裡,可以給具體的例項物件新增例項方法,這個方法只屬於這個例項 物件,我們把這樣的方法稱之為單例方法。單例方法也叫作單件方法。定義單例方法,首先要生成乙個例項物件,其次,要在方法名前加上物件名和乙個點號 在下面示例中,物件p1不可以laugh laugh方法只屬於p2物件。例項方...
ruby的單例方法
begin 在ruby裡,可以給具體的例項物件新增例項方法,這個方法只屬於這個例項 物件,我們把這樣的方法稱之為單例方法。單例方法也叫作單件方法。定義單例方法,首先要生成乙個例項物件,其次,要在方法名前加上物件名和乙個點號 在下面示例中,物件p1不可以laugh laugh方法只屬於p2物件。例項方...
ruby中的單例模式
引入檔案singleton,引入模組singleton require singleton class singletontest attr accessor data include singleton enda singletontest.instance b singletontest.ins...