84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
我最近在整理公司项目中的类继承关系,使用 Ruby 抽取出了一个类及其父类的组合,类似[[B,A], [C,A], [E,D], [F,B] ...]其中[B,A]中 B 为子类,A为父类,根类不只有一个,比如上例中的 A,D。我希望能能生成这些类的关系图:
[[B,A], [C,A], [E,D], [F,B] ...]
[B,A]
[ A=>[ B=>[F], C ], D=>[E] ]
类似上述结构,或者能够示意出类的继承关系就行。语言最好是 Ruby,其他语言也可以。各位有什么好的思路或者现成的库可以借鉴吗?
认证0级讲师
先写个生成各个类下的子类。
a = [['B','A'], ['C','A'], ['E','D'], ['F','B'], ['G','E']] b = ['A','B','C','D','E','F','G'] b.map{|e| a.map{|d| d[0] if d[-1] == e}}
输出:
[["B", "C", nil, nil, nil], [nil, nil, nil, "F", nil], [nil, nil, nil, nil, nil], [nil, nil, "E", nil, nil], [nil, nil, nil, nil, "G"], [nil, nil, nil, nil, nil], [nil, nil, nil, nil, nil]]
每行代表一个类的子类集合。
先写个生成各个类下的子类。
输出:
每行代表一个类的子类集合。