当我在A.new
内拨打B
时,有没有办法自动获取某些对象而不指定它?我希望自动将self
从B
传递到A
,而不指定它。
class A
initialize object=target-self
end
end
class B
A.new
end
然后,除非我指定另一个类,否则每次我都希望self
默认传递时,我不必输入此内容。
A.new self
答案 0 :(得分:3)
这很简单。你所要做的就是写:
class A
def initialize(object = self)
# work with object
end
end
Ruby中始终存在self
的值。在您提供的示例中,它将评估为B
类。要使它成为类的实例,只需在初始化期间调用该方法:
class B
def initialize
A.new # self is a B instance here
end
end