我们说我有一个班级,我希望能够在班级本身上调用相同的方法和该班级的一个实例:
class Foo
def self.bar
puts 'hey this worked'
end
end
这让我可以做到以下几点:
Foo.bar #=> hey this worked
但我也希望能够做到:
Foo.new.bar #=> NoMethodError: undefined method `bar' for #<Foo:0x007fca00945120>
所以现在我修改我的类以获得bar
的实例方法:
class Foo
def bar
puts 'hey this worked'
end
end
现在我可以在类和类的实例上调用bar:
Foo.bar #=> hey this worked
Foo.new.bar #=> hey this worked
现在我的班级Foo
已经湿了&#39;
class Foo
def self.bar
puts 'hey this worked'
end
def bar
puts 'hey this worked'
end
end
有没有办法避免这种冗余?
答案 0 :(得分:2)
有一种方法可以调用另一种方法。否则,不,没有办法避免这种“冗余”,因为 没有冗余。有两种不同的方法碰巧具有相同的名称。
class Foo
def self.bar
puts 'hey this worked'
end
def bar
Foo.bar
end
end