1
當我寫下面的程序,當我運行ruby腳本時,爲什麼會自動執行類中的代碼?
class Classname
puts "hi"
end
保存它作爲一個文件名爲.rb,並執行在終端中的文件時,輸出「喜」被返回。我不明白爲什麼。我不必將put語句分配給方法,創建Classname類的對象,然後調用該對象的方法來獲取該輸出?或者至少把puts語句放在類的初始化方法中,然後創建一個對象?爲什麼這樣工作?
當您使用'class'關鍵字定義一個類時,它實際上會構造一個新的'Class'對象並在其上下文中執行內部代碼。請參閱http://stackoverflow.com/a/9202363/591495 – oldrinb
如果類中的代碼沒有得到執行,您將如何定義方法?如果類內部的代碼沒有被執行,你會如何調用'attr_accessor'方法?如果在初始化對象初始化之前'initialize'的定義沒有被執行,你將如何創建一個實例?爲什麼'initialize'方法的定義必須一遍又一遍地爲你創建的每個實例執行? –