ruby> class Fruit | def initialize | @kind = "apple" | @condition = "ripe" | end | end nil ruby> f4 = Fruit.new "a ripe apple"
將缺省的變為需要的
很多時候,缺省值不會有太多的意思.真的是缺省那樣的水果嗎?也許在創造水果的時候對其類型作要求是個更好的辦法.要這樣做,我們就必須給initialize 方法加入一個正式的參數.因為一些不會在此提及的原因,你向 new 傳遞的參數實際上是遞給了initialize.
ruby> class Fruit | def initialize( k ) | @kind = k | @condition = "ripe" | end | end nil ruby> f5 = Fruit.new "mango" "a ripe mango" ruby> f6 = Fruit.new ERR: (eval):1:in `initialize': wrong # of arguments(0 for 1)