Учебники

Эрланг — Модули

Модули — это набор функций, сгруппированных в одном файле под одним именем. Кроме того, все функции в Erlang должны быть определены в модулях.

Большинство основных функций, таких как арифметические, логические и логические операторы, уже доступны, поскольку модули по умолчанию загружаются при запуске программы. Любая другая функция, определенная в модуле, который вы когда-либо будете использовать, должна вызываться в форме Module: Function (Arguments).

Определение модуля

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

Синтаксис объявления функции следующий:

Синтаксис

-module(modulename)

Где modulename — это имя модуля. Это должна быть первая строка кода в модуле.

Следующая программа показывает пример модуля с именем helloworld .

пример

Live Demo

-module(helloworld). 
-export([start/0]). 

start() -> 
   io:fwrite("Hello World").

Выход вышеуказанной программы —

Выход

Hello World

Атрибуты модуля

Атрибут модуля определяет определенное свойство модуля. Атрибут модуля состоит из тега и значения.

Общий синтаксис атрибута —

Синтаксис

-Tag(Value)

Пример использования атрибута показан в следующей программе:

пример

Live Demo

-module(helloworld). 
-author("TutorialPoint"). 
-version("1.0"). 
-export([start/0]). 

start() -> 
   io:fwrite("Hello World").

Вышеуказанная программа определяет 2 пользовательских атрибута, называемых автором и версией, которые содержат автора и номер версии программы соответственно.

Выход вышеуказанной программы —

Выход

Hello World

Предварительно построенные атрибуты

Erlang имеет несколько встроенных атрибутов, которые можно прикрепить к модулям. Давайте посмотрим на них.

экспорт

Атрибут export будет принимать список функций и артиклей для экспорта для потребления другими модулями. Это определит интерфейс модуля. Мы уже видели это во всех наших предыдущих примерах.

Синтаксис

export([FunctionName1/FunctionArity1,.,FunctionNameN/FunctionArityN])

Куда,

  • FunctionName — это имя функции в программе.

  • FunctionArity — количество параметров, связанных с функцией.

FunctionName — это имя функции в программе.

FunctionArity — количество параметров, связанных с функцией.

пример

Live Demo

-module(helloworld). 
-author("TutorialPoint"). 
-version("1.0"). 
-export([start/0]). 

start() -> 
   io:fwrite("Hello World").

Выход вышеупомянутой программы будет —

Выход

Hello World

Импортировать

Атрибут import используется для импорта функций из другого модуля, чтобы использовать его как локальный.

Синтаксис

-import (modulename , [functionname/parameter]).

Куда,

  • Modulename — это имя модуля, который необходимо импортировать.

  • имя функции / параметр — функция в модуле, которую необходимо импортировать.

Modulename — это имя модуля, который необходимо импортировать.

имя функции / параметр — функция в модуле, которую необходимо импортировать.

пример

Live Demo

-module(helloworld). 
-import(io,[fwrite/1]). 
-export([start/0]). 

start() -> 
   fwrite("Hello, world!\n").

В приведенном выше коде мы используем ключевое слово import для импорта библиотеки ‘io’ и, в частности, функцию fwrite. Поэтому теперь, когда мы вызываем функцию fwrite, нам не нужно нигде упоминать имя модуля io.

Выход вышеупомянутой программы будет —