爲什麼我不斷收到一個NameError,說Cherry
是一個未初始化的常量,當我撥打Cherry.new
?我還不熟悉創建子類。爲什麼我的子類一直說它沒有被初始化?
class Red
def initialize(options = {})
@options = options
end
def instance_method_a
return @options[:a] if @options.has_key?(:a)
if @options.has_key?(:b)
#mathy code
end
end
def instance_method_b
return @options[:b] if @options.has_key?(:b)
if @options.has_key?(:a)
#mathy code
end
end
class Cherry < Red
def initialize(var)
self.new(:a => var)
end
end
class Vermillion < Red
def initialize(var)
self.new(:b => var)
end
end
end
我確定Vermillion
將會像未初始化一樣。我需要能夠將變量分配給這些子類以通過實例方法運行它們。我怎樣才能讓這些工作?
'子類A'不是有效的類名,在類名或任何變量/常量名中不能有空格。 –
我編輯它。我正在改變名字,我只是搞砸了那部分。我的另一個程序只是把它作爲一個大寫的單詞。 –
請使用'Class'以外的其他名稱,因爲Ruby已經有一個'Class'類,其中所有類都是其對象。如果仍然遇到問題,請發佈更新後的問題。 –