3

私が持っていると言う

class A
end

class B < A
end

p B.superclass.superclass.superclass # => BasicObject

.superclass を 3 回呼び出す代わりに、基本的にこのメソッドを x 回呼び出すという繰り返し演算子のようなものを指定できる方法はありますか?

4

3 に答える 3

4

私は以下のようにしました:

([:superclass]*3).inject(B,:send)
# => BasicObject
于 2013-11-01T12:26:42.673 に答える
1

存在するものは何もありません(私が知っていること)。しかし、ここで、私はあなたのためにそれを作りました. :)

class A
end

class B < A
end

class Object
  def call_repeatedly(sym, n)
    res = self
    n.times { res = res.send(sym)}
    res
  end
end

B.call_repeatedly(:superclass, 3) # => BasicObject
于 2013-11-01T12:04:18.103 に答える