Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про Ruby: path, class hierarchy, include, superclass

Какой путь поиска метода в иерархии классов?

Этот вопрос проверяет, как Ruby находит методы в классе и связанных модулях.

Короткий ответ

Ruby ищет метод сначала в самом объекте, затем в его классе, подключенных модулях (через include), суперклассах и в конечном итоге в классе BasicObject.

Длинный ответ

Ruby использует цепочку поиска (method lookup path), чтобы найти вызываемый метод.

Порядок поиска:

  • Сначала Ruby проверяет объект на наличие singleton-метода.

  • Затем проверяет класс объекта.

  • Ищет методы в подключенных модулях (include).

  • Переходит к суперклассу (superclass).

  • Завершает поиск в базовом классе BasicObject.

Пример:

module Greet
  	def hello
    		"Hello from Greet!"
  	end
end

class Person
  	include Greet
end

person = Person.new
puts person.hello # => "Hello from Greet!"

Метод hello сначала ищется в объекте person, затем в классе Person, и только потом в модуле Greet.
Чтобы увидеть цепочку поиска, можно использовать метод ancestors:

puts Person.ancestors.inspect

Уровень

  • Рейтинг:

    2

  • Сложность:

    7

Навыки

  • Ruby

    Ruby

Ключевые слова

#path

#class hierarchy

#include

#superclass

Подпишись на Ruby Developer в телеграм