在我从 C++ 十年过渡到 Ruby 的过程中,我发现自己在猜测如何完成最简单的事情。鉴于下面的经典形状推导示例,我想知道这是否是“红宝石之路”。虽然我相信下面的代码本质上没有任何问题,但我仍然觉得我没有充分利用 Ruby 的全部力量。
class Shape
def initialize
end
end
class TwoD < Shape
def initialize
super()
end
def area
return 0.0
end
end
class Square < TwoD
def initialize( side )
super()
@side = side
end
def area
return @side * @side
end
end
def shapeArea( twod )
puts twod.area
end
square = Square.new( 2 )
shapeArea( square ) # => 4
这是实施的“红宝石之路”吗?如果没有,您将如何实施?