Erlang - 基本语法


为了理解Erlang的基本语法,我们首先看一个简单的Hello World程序。

例子

% hello world program
-module(helloworld). 
-export([start/0]). 

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

关于上述程序需要注意以下事项 -

  • % 符号用于向程序添加注释。

  • 模块语句就像在任何编程语言中添加名称空间一样。因此,在这里,我们提到此代码将成为名为helloworld的模块的一部分。

  • 使用导出功能,以便可以使用程序中定义的任何功能。我们正在定义一个名为 start 的函数,为了使用 start 函数,我们必须使用导出语句。/ 0表示我们的函数“start”接受 0 个参数。

  • 我们最终定义了我们的启动函数。这里我们使用另一个名为io的模块,它具有 Erlang 中所需的所有输入输出函数。我们使用fwrite函数将“Hello World”输出到控制台。

上述程序的输出将是 -

输出

Hello, world!

声明的一般形式

在 Erlang 中,您已经看到 Erlang 语言中使用了不同的符号。让我们回顾一下从简单的 Hello World 程序中看到的内容 -

  • 连字符(-)通常与模块、导入和导出语句一起使用。连字符用于为每个语句赋予相应的含义。因此,Hello world 程序的示例如以下程序所示 -

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

每个语句都用点(.)符号分隔。Erlang 中的每个语句都需要以此分隔符结束。Hello world 程序的一个示例如以下程序所示 -

io:fwrite("Hello, world!\n").
  • 斜杠(/)符号与函数一起使用来定义函数接受的参数数量。

-export([start/0]).

模块

在Erlang中,所有的代码都被分成模块。模块由一系列属性和函数声明组成。它就像其他编程语言中的命名空间的概念一样,用于在逻辑上分隔不同的代码单元。

定义模块

模块是用模块标识符定义的。一般语法和示例如下。

句法

-module(ModuleName)

ModuleName需要与文件名相同,减去扩展.erl。否则代码加载将无法按预期进行。

例子

-module(helloworld)

这些模块将在后续章节中详细介绍,这只是为了让您对如何定义模块有一个基本的了解。

Erlang 中的导入语句

在Erlang中,如果想使用现有Erlang模块的功能,可以使用import语句。以下程序描述了导入语句的一般形式 -

例子

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

在哪里,

  • Modulename - 这是需要导入的模块的名称。

  • functionname/parameter - 模块中需要导入的函数。

让我们更改编写 hello world 程序的方式以使用 import 语句。该示例如以下程序所示。

例子

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

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

在上面的代码中,我们使用 import 关键字导入库“io”,特别是fwrite函数。所以现在每当我们调用 fwrite 函数时,我们不必到处提及io模块名称。

Erlang 中的关键字

关键字是 Erlang 中的保留字,不应将其用于除预期目的之外的任何其他目的。以下是 Erlang 中的关键字列表。

并且 乐队
开始 博尔 BSL
巴塞尔 异或 案件 抓住
条件 分区 结尾 乐趣
如果 不是
或者 要不然 收到 雷姆
尝试 什么时候 异或

Erlang 中的评论

注释用于记录您的代码。单行注释通过在行中的任意位置使用%符号来标识。以下是相同的示例 -

例子

% hello world program
-module(helloworld).
% import function used to import the io module
-import(io,[fwrite/1]).
% export function used to ensure the start function can be accessed.
-export([start/0]).

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