Erlang基础语法

Erlang基础语法

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

示例

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

start() -> 
   io:fwrite("Hello, world!\n").
对上述程序需要注意下面的一些事项 -
  • %符号是用来在程序中添加注释的;
  • 模块声明中,就像其它编程语言中的命名空间一样。所以在这里,这个代码将是一个叫作 helloworld 模块的一部分;
  • export 函数用于使得程序中定义的任何函数都可以使用。我们定义了一个名为 start 的函数,但是如果要使用 start 函数,我们必须使用 export 语句。而 /0 则表 start 函数接受 0 个参数。
  • 最后,我们定义 start 函数。在这里,我们使用一个模块: io ,这个模块在 Erlang 中提供有输入输出功能。
    我们使用 fwrite 函数来输出 “Hello World” 到控制台。
上述程序保存到一个文件:helloworld.erl,并放到 D:\worsp 目录下,打开终端,进入到 D:\worsp 目录下,执行以下命令,将会输出如下结果 -

语句的一般形式

你可能已经看到在 Erlang 语言中使用不同的符号。让我们通过一个简单的 Hello World 程序来说明 -
  • 连字符符号(-)通常与module, import 和 export 语句一起使用。连字符符号一种用来为每个语句给出相应意思的。因此,在 Hello World 程序的例子有下面两个语句 -
-module(helloworld).
-export([start/0]).
每个语句分隔用点(.)符号。在 Erlang 中每个语句需要使用此分隔符作为这个语句的结束。在 Hello World 程序的例子程序如图所示 -
io:fwrite("Hello, world!\n").
  • 斜线(/)符号用于函数定义其接受的参数数量,如下 0 表示无参数传递
-export([start/0]).

模块

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

定义模块

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

语法

-module(ModuleName)
模块名称必须与文件名减去扩展名 .erl 后相同。否则,预期代码将无法加载正常工作。

语法

-module(helloworld)
这些模块在随后的章节中被覆盖,这只是让你对模块应当如何定义有一个基本的理解。

Erlang中的 import 语句

在 Erlang 中,如想使用 Erlang 中现有模块的功能,可以使用 import 语句。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 中的关键字列表。
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").