当前位置: 首页 > 文档资料 > Erlang 中文教程 >

Basic 语法

优质
小牛编辑
123浏览
2023-12-01

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

例子 (Example)

% hello world program
-module(helloworld). 
-export([start/0]). 
start() -> 
   io:fwrite("Hello, world!\n").

关于上述计划需要注意以下事项 -

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

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

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

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

上述计划的输出将是 -

输出 (Output)

Hello, world!

声明的一般形式

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

  • 连字符号(–)通常与模块,导入和导出语句一起使用。 连字符符号用于相应地赋予每个语句含义。 所以来自Hello world程序的示例显示在以下程序中 -

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

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

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

-export([start/0]).

单元 (Modules)

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

定义一个模块

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

语法 (Syntax)

-module(ModuleName)

ModuleName需要与文件名减去扩展名.erl 。 否则代码加载将无法按预期工作。

例子 (Example)

-module(helloworld)

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

在Erlang中导入语句

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

例子 (Example)

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

Where,

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

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

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

例子 (Example)

% 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中的关键字列表。

afterandandalsoband
beginbnotborbsl
bsrbxorcasecatch
conddivendfun
ifletnotof
ororelsereceiverem
trywhenxor

Erlang中的评论

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

例子 (Example)

% 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").