Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад

Что такое модуль? Какие есть варианты подключения модулей в класс?

Этот вопрос проверяет знание модулей Ruby и способов их использования для организации и повторного использования кода.

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

Модуль — это контейнер для методов и констант, который нельзя инстанцировать как объект. В классы его можно подключить через include (включает методы как методы экземпляра), extend (добавляет методы как методы класса) или prepend (переопределяет методы класса).

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

Модули в Ruby используются для организации кода, предотвращения дублирования и добавления функциональности классам. Их нельзя инстанцировать, но можно подключать. Пример:

module Greetable  
  def greet  
    "Hello!"  
  end  
end  

class Person  
  include Greetable  
end  

person = Person.new  
puts person.greet  # => "Hello!"  

 

Основные способы подключения:

include: Добавляет методы модуля как методы экземпляра класса.

extend: Добавляет методы модуля как методы класса.

 

class Person  
  extend Greetable  
end  
puts Person.greet  # => "Hello!"  

prepend: Добавляет методы модуля с приоритетом над методами класса.

module Override  
  def greet  
    "Hi there!"  
  end  
end  

class Person  
  prepend Override  

  def greet  
    "Hello!"  
  end  
end  
puts Person.new.greet  # => "Hi there!"  

 

Модули эффективны для разделения и повторного использования кода, особенно в больших проектах.

Уровень

  • Рейтинг:

    2

  • Сложность:

    4

Навыки

  • Ruby

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

#module

#include

#extend

#prepend

#mixin

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