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)