English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основные синтаксисы Erlang

Чтобы понять базовую грамматику Erlang, давайте сначала посмотрим на простуюHello WorldПрограмма.

Пример

%Программа hello world
-module(helloworld). 
-export([start/0]). 
start() -> 
   io:fwrite("Hello, world!\n").

В отношении указанного выше программы需要注意以下几点:

  • Символ % используется для добавления комментариев в программу.

  • Оператор module подобен добавлению пространства имен в любом языку программирования. Здесь我们要 отметить, что этот код будет частью модуля под названием helloworld.

  • Использование функции export позволяет использовать любую функцию, определенную в программе. Мы определяем функцию с именем start, чтобы использовать функцию start,我们必须 использовать оператор export. /0 означает, что наша функция 'start' принимает 0 параметров.

  • Наконец, мы определили функцию start. Здесь мы используем другой модуль под названием io, который в Erlang содержит все необходимые функции ввода-вывода. Мы используем функцию fwrite для вывода «Hello World» на консоль.

Вывод программы, приведенной выше, будет-

Вывод

Hello, world!

Общий вид объявления

В Erlang вы уже видели различные символы в языке программирования. Давайте посмотрим, что мы видим из простого примера Hello World-

  • Тире(–)Обычно используется вместе с операторами модуля, импорта и экспорта. Тире используется для придачи каждому оператору соответствующего значения. Таким образом, пример программы hello world показан в следующей программе-

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

Каждая строка заканчивается точкой(.)Символы界定. Каждая строка в Erlang должна заканчиваться этим界定ателем. Пример программы hello world приведен в следующем примере:

io:fwrite("Hello, world!\n").
  • Сlash(/)Символы используются вместе с функциями для определения количества параметров, принятых функцией.

-export([start/0]).

Модуль

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

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

Использование идентификатора модуля для определения модуля. Общий синтаксис и примеры приведены ниже.

Грамматика

-module(ModuleName)

ЭтоModuleNameТребуется имя файла без расширения, такое как имя файла..erl. Если не так, загрузка кода не будет выполняться ожидаемым образом.

Пример

-module(helloworld)

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

Декларации импорта в Erlang

В Erlang, если нужно использовать функции существующего модуля Erlang, можно использовать оператор import. В следующей программе описана общая форма оператора import-

Пример

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

Где,

  • Имя модуля−Это имя модуля, который необходимо импортировать.

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

Давайте изменим способ записи программы hello world с использованием импортных операторов. Пример будет показан в следующей программе.

Пример

%Программа hello world
-module(helloworld).
-import(io,[fwrite/1]).
-export([start/0]).
start() ->
   fwrite("Hello, world!\n").

В上面的 коде мы используем ключевое слово import для импорта библиотеки «io», особенноfwriteФункция. Таким образом, теперь при вызове функции fwrite не нужно упоминать её вездеioИмя модуля.

Ключевые слова в Erlang

Ключевые слова являются зарезервированными словами в Erlang и не должны использоваться для других целей, кроме预定ных. Вот список ключевых слов в Erlang.

afterandandalsoband
beginbnotborbsl
bsrbxorcasecatch
conddivendfun
ifletnotof
ororelsereceiverem
trywhenxor

Комментарии Erlang

Комментарии используются для записи кода. Однострочный комментарий обозначается символом % в любом месте строки. Вот аналогичный

Пример

%Программа hello world
-module(helloworld).
%Импортировать функцию, чтобы импортировать модуль io
-import(io,[fwrite/1]).
%Экспортировать функцию, чтобы обеспечить доступ к функции запуска.
-export([start/0]).
start() ->
   fwrite("Hello, world!\n").