我现在正在读一本叫Practical Object Oriented Design in Ruby
的书我是Ruby新手,我知道只要你理解了这些概念,就不需要理解书中的代码,我是这么做的,但是我在第2章中发现的一段代码让我有些困扰。
在第二章中,作者展示了下面的Ruby类。。。
class Gear
attr_reader :chainring, :cog
def initialize(chainring, cog)
@chainring = chainring
@cog = cog 6
end
def ratio
chainring / cog.to_f
end
end
puts Gear.new(52, 11).ratio
puts Gear.new(30, 27).ratio
我不知道的是,她说这个类包含三个方法,
chainring
,cog
和ratio
,但我只看到一个方法(ratio
)和两个符号(chainring
和cog
)。有人能验证上面的代码并告诉我这是作者的错误还是实际上有三种方法?
书中引用:
每个实例实现三种方法:
chainring
、cog
和ratio
。谢谢
最佳答案
两种方法(chainring
和cog
)由attr_reader
隐式定义:
attr_reader :chainring, :cog