... > Ruby > Создание и использование...

Создание и использование модулей в Ruby

НАВИГАЦИЯ ПО СТРАНИЦЕ

Создание модуля Включение модуля Пространства имен в модулях Встроенные модули

Модули в Ruby предоставляют механизм для группировки методов и констант, обеспечивая их повторное использование в различных частях программы. В данном контексте модули играют важную роль в поддержке принципа DRY (Don't Repeat Yourself) и структурировании кода.

Создание модуля

Создание модуля в Ruby осуществляется с использованием ключевого слова module, после которого следует блок кода, содержащий методы и константы.

module MathOperations
  def add(a, b)
    a + b
  end

  def subtract(a, b)
    a - b
  end
end

Включение модуля

Модули могут быть включены в классы с использованием ключевого слова include. Это позволяет классам использовать методы и константы из модуля.

class Calculator
  include MathOperations
end

calc = Calculator.new
puts calc.add(5, 3)       # Вывод: 8
puts calc.subtract(7, 2)  # Вывод: 5

Пространства имен в модулях

Модули также предоставляют средство для создания пространств имен. Это позволяет избежать конфликтов имен между различными частями программы.

module Geometry
  class Circle
    def area(radius)
      Math::PI * radius**2
    end
  end
end

module Physics
  class Circle
    def circumference(radius)
      2 * Math::PI * radius
    end
  end
end

circle1 = Geometry::Circle.new
puts circle1.area(4)   # Вывод: 50.26548245743669

circle2 = Physics::Circle.new
puts circle2.circumference(4)  # Вывод: 25.132741228718345

Встроенные модули

Ruby также предоставляет множество встроенных модулей, таких как Enumerable и Comparable, которые можно использовать для обогащения классов стандартным функционалом.

class MyArray
  include Enumerable

  def initialize(*elements)
    @elements = elements
  end

  def each
    @elements.each { |element| yield element }
  end
end

my_array = MyArray.new(1, 2, 3, 4, 5)
puts my_array.map { |x| x * 2 }   # Вывод: 2 4 6 8 10
puts my_array.sum                # Вывод: 15

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