Перейти к содержанию

Модули

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

Введение в модули

Модули в Eiger предоставляют способ инкапсуляции кода в отдельные файлы, которые можно включать и повторно использовать в различных частях проекта. Существует два типа модулей:

  • Встроенные: предоставляются языком и включаются без кавычек
  • Пользовательские: создаются пользователем и включаются с кавычками

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

Чтобы включить модуль в ваш файл, используйте оператор include, за которым следует имя модуля.

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

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

include math ~ Включает встроенный модуль math

Пользовательские модули

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

include "mymodule.ei" ~ Включает пользовательский модуль mymodule.ei

Использование включенных модулей

После включения модуля вы можете получить доступ к его функциональности и определённым классам или переменным. Например, если модуль определяет класс или переменную, вы можете использовать их непосредственно в своем коде.

include "mymodule.ei" ~ Этот модуль содержит реализацию для dataclass Test

emitln(Test.message) ~ Доступ к свойству из dataclass включенного модуля

Пример структуры проекта

Вот пример структуры проекта, использующего модули:

project/
│
├── main.ei
└── mymodule.ei

main.ei

~ это комментарий
include math ~ не используйте кавычки для встроенных модулей
include "mymodule.ei" ~ используйте кавычки для пользовательских модулей

emitln(Test.message) ~ Использование класса из пользовательского модуля

mymodule.ei

emitln("my module loaded!") ~ Это будет выполнено при включении модуля
                            ~ то есть в начале программы

dataclass Test
    let message = "Hello World!"
end