为了理解Erlang的基本语法,让我们首先看一个简单的Hello World程序。
% hello world program -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中,您已经看到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模块的功能,则可以使用import语句。以下程序描述了import语句的一般形式-
-import (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中的关键字列表。
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 program -module(helloworld). % 导入函数,用于导入 io 模块 -import(io,[fwrite/1]). %导出函数,用于确保可以访问启动函数。 -export([start/0]). start() -> fwrite("Hello, world!\n").