开发学院

您的位置:首页>教程>正文

教程正文

Erlang 基础语法

Erlang 基础语法

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

例子

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

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

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

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

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

  使用export函数,以便可以使用程序中定义的任何函数。我们正在定义一个名为start的函数,为了使用start函数,我们必须使用导出语句。/0意味着我们的函数“开始”接受0参数。

  我们最终定义了start函数。在这里,我们使用另一个称为io的模块,它在Erlang中具有所有必需的输入输出函数。我们使用fwrite函数将“helloworld”输出到控制台。

  下面是程序输出

Hello, world!

通用语法

  在Erlang中,您已经看到Erlang语言中使用了不同的符号。让我们看看我们从一个简单的helloworld程序中看到的东西

  通常使用连字符符号(–)与模块、导入和导出语句一起使用。连字符符号用于相应地赋予每个语句的含义。因此,来自helloworld程序的示例如以下程序所示

-module(helloworld).
-export([start/0]).
   Erlang中的每个语句都需要使用( .)分隔符站作为终结符号,helloworld程序的一个示例如下面的程序所示?

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

  斜杠(/)符号与函数一起使用,以定义函数接受的参数的数量。

-export([start/0]).

模块

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

定义一个模块

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

语法

-module(ModuleName)

  模块名称需要与文件名称相同,去掉扩展名.erl.否则代码加载将不会按预期工作。

例子

-module(helloworld)

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

Import语句

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

例子

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

  modulename是需要导入的模块的名称。

  functionname/parameter是模块中需要导入的功能。

  让我们更改我们编写helloworld程序的方式,使用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中的关键字列表。

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

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