Краткое руководство по изучению этих концепций
В этой серии мы использовали несколько модулей, таких как String и Map, на этот раз мы увидим, как создавать свои собственные модули.
В принципе, они очень похожи на классы; однако у них нет состояния.
Основной синтаксис модулей следующий:
В модулях мы можем найти, среди прочего, два типа функций: общедоступные функции, к которым можно получить доступ в других модулях (и внутри iex), и частные функции, которые могут выполняться только в том же модуле. Важно помнить, что функции возвращают последнюю строку кода.
Запуск файла .ex
Чтобы запустить этот модуль, мы должны его скомпилировать. Итак, в нашем терминале, на уровне, где находится модуль (я назвал его math.ex
), выполняем следующее:
Это возвращает нам байт-код нашего модуля, и он автоматически доступен в нашей интерактивной оболочке Elixir. Это происходит, когда мы находимся в том же каталоге, что и модуль, поэтому, если мы поместим
а потом
он возвращает 3
.
Запуск файла .exs
Другой способ его выполнения — поместить модуль в exs-файл, где байт-код хранится в памяти и его не нужно компилировать. Вам останется только вывести на экран результат выполнения функции модуля.
И запустите его командой elixir
Скомпилировать ex в iex
Мы можем компилировать и импортировать файлы Elixir внутри интерактивной оболочки. В iex помещаем следующее:
Таким образом, мы также можем вызывать функции нашего модуля
Функции в Эликсире
Функции могут иметь палаты и предложения. Давайте посмотрим на функцию, которая проверяет, равно ли число нулю, когда оно целое. Вот код:
У нас также могут быть значения по умолчанию. Давайте посмотрим на пример со строками:
Затем запустите файл после его компиляции в iex
Когда у нас есть несколько предложений в функции, полезно использовать функцию-заголовок, которая определяет значения по умолчанию, а затем варды для входа в ту или иную функцию.
Таким образом, если мы отправляем только один аргумент, a
, аргумент b
принимает значение nil
, а затем выполняется функция соединения, которая возвращает только a
.
Спасибо за прочтение! Оставайтесь с нами, чтобы узнать больше.