Рубин предоставляет метод для показа вызовов иерархии?

Существует , который даст Вам некоторое предописание для iostream классов, но в целом нет очень, можно сделать о шаблонах stl с точки зрения вперед объявления их.

Предварительно скомпилированные заголовки являются способом пойти. Вы не заметите увеличения скорости в первый раз, когда Вы компилируете их, но необходимо только заплатить ту цену однажды в течение каждого раза, когда Вы изменяете предварительно скомпилированный заголовок (или что-либо включенное в него).

Посмотрите этот вопрос для других идей об ускорении компиляции.

15
задан flyer88 19 October 2009 в 18:14
поделиться

2 ответа

Вы просите увидеть всех предков класса или потомков? Для предков используйте:

Class.ancestors

Однако не существует сопоставимого метода "из коробки" для потомков. Вы можете использовать ObjectSpace, как показано ниже, но он медленный и может не переноситься между реализациями Ruby:

ObjectSpace.each_object(Class) do |klass| 
  p klass if klass < StandardError
end

РЕДАКТИРОВАТЬ:

Также можно использовать ловушку Class # наследуемый для отслеживания создания подклассов. Однако при этом не будут обнаружены подклассы, созданные до определения функции отслеживания, поэтому он может не соответствовать вашему варианту использования.

23
ответ дан 1 December 2019 в 02:20
поделиться

Module#ancestors

Example:

class Foo
end

class Bar < Foo
end

Bar.ancestors # => [Bar, Foo, Object, Kernel]
6
ответ дан 1 December 2019 в 02:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: