使用Ruby语言创建类别和子类别

时间:2012-05-23 03:37:24

标签: ruby recursion

我一直在努力解决这个问题但是没有任何解决方案,所以你能帮助我吗? 这是问题描述: 该程序应该能够显示给定的面包屑踪迹 类别/子类别。 例如: 输入:公共关系 产出:商业&财务>>广告与广告营销>>公共关系。

Here Business&金融是主要类别,广告和营销是其子类别,公共关系是Adv& amp;的子类别。销售。

我考虑过使用递归来实现它,但我不太清楚如何做到这一点。

谢谢, 麦

1 个答案:

答案 0 :(得分:0)

假设它是纯Ruby,你可以这样做:

class Category
  def initialize name, parent = nil
    @name = name 
    @parent = parent
  end

  def display
    @parent ? "#{@parent.display} >> #{@name}" : name
  end

  def name
    @name
  end
end

并像这样使用

1.9.2p320 :046 > c = Category.new "Parent"
 => #<Category:0x000001009c46d0 @name="Parent", @parent=nil> 
1.9.2p320 :047 > sub = Category.new "Sub", c
 => #<Category:0x000001009bf860 @name="Sub", @parent=#<Category:0x000001009c46d0 @name="Parent", @parent=nil>> 
1.9.2p320 :048 > sub.display
 => "Parent >> Sub"