English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Чтобы понять базовую грамматику 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, можно использовать оператор 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.
after | and | andalso | band |
begin | bnot | bor | bsl |
bsr | bxor | case | catch |
cond | div | end | fun |
if | let | not | of |
or | orelse | receive | rem |
try | when | xor |
Комментарии используются для записи кода. Однострочный комментарий обозначается символом % в любом месте строки. Вот аналогичный
%Программа hello world -module(helloworld). %Импортировать функцию, чтобы импортировать модуль io -import(io,[fwrite/1]). %Экспортировать функцию, чтобы обеспечить доступ к функции запуска. -export([start/0]). start() -> fwrite("Hello, world!\n").