假设我有三个课程:A
,B
和C
。
我在C
的实例和A
的实例上创建B
的实例:
class A; end
class B; end
class C; end
a = A.new
b = B.new
a.c = C.new
b.c = C.new
我可以以某种方式找到父母吗?像这样:
a.c.parent #=> instance of A ( a == a.c.parent )
b.c.parent #=> instance of B ( b == b.c.parent )
这样的事情是否存在?
答案 0 :(得分:7)
由于在您的示例中,A.c=
尚未定义,您可以将其定义为:
class A
attr_reader :c
def c=(x)
@c = x
x.parent = self
end
end
并在班级attr_accessor :parent
中定义C
。
Ruby中没有“所有权”关系,所以你必须自己建模。