Що таке простір імен (namespace) в Ruby?

В Ruby, простір імен (namespace) - це концепція, яка дозволяє групувати імена змінних, класів і методів таким чином, що вони не конфліктують з іменами інших об’єктів. Простір імен допомагає уникнути збитків імен і дозволяє створювати більш структурований та чистий код.

Основним механізмом для реалізації просторів імен є використання модулів. Модуль в Ruby - це контейнер для класів, методів та констант. Модулі можна вкладати один в одного для створення ієрархії просторів імен.

Ось приклад використання простору імен в Ruby з використанням модулів:

module MyNamespace
  class MyClass
    def my_method
      puts 'Hello from MyClass'
    end
  end

  def self.my_function
    puts 'Hello from my_function'
  end
end

# Виклик методу з простору імен
obj = MyNamespace::MyClass.new
obj.my_method

# Виклик функції з простору імен
MyNamespace.my_function

У цьому прикладі MyNamespace - це простір імен, створений за допомогою модуля. Всередині цього простору імен знаходяться клас MyClass та функція my_function. Вони викликаються за допомогою подвійного двокрапка ::, який вказує на простір імен.

Простір імен в Ruby допомагає уникати конфліктів імен, полегшує організацію коду та робить програми більш структурованими.