Erlang 模块

模块是在单个文件中以单个名称重新组合的一组函数。此外,Erlang中的所有函数都必须在模块中定义。

大多数基本功能,如算术、逻辑和布尔运算符已经可用,因为默认模块是在程序运行时加载的。您将要使用的模块中定义的每个其他函数都需要使用 Module: Function (Arguments) 的形式来调用。

定义模块

使用模块,可以声明两种类型的内容:函数和属性。属性是描述模块本身的元数据,比如它的名称、应该对外界可见的函数、代码的作者等等。这种元数据很有用,因为它向编译器提示它应该如何完成它的工作,还因为它允许人们从编译后的代码中检索有用的信息,而不必查阅源代码。

函数声明的语法如下 :

语法

-module(modulename)

这里,modulename是模块的名称。这必须在模块代码的第一行。下面的程序显示了一个叫helloworld模块的一个实例。

示例

-module(helloworld).-export([start/0]).start()->io:fwrite("HelloWorld").

上面的代码的输出结果是-

HelloWorld

模块属性

模块属性定义模块的特定属性,模块属性由标记和值组成。

属性的一般语法是-

语法

-Tag(Value)

下面的实例程序是用来演示模块属性如何使用-

示例

-module(helloworld).-author("TutorialPoint").-version("1.0").-export([start/0]).start()->io:fwrite("HelloWorld").

以上程序定义2个自定义属性:author和version,分别用来表示该程序的作者和版本号。

上面的代码的输出结果是-

HelloWorld

预先内置属性

Erlang有可连接到模块的某些预先内置构建的属性,让我们来看看。

导出

导出属性将使用函数和参数数量列表导出到其他模块。它将定义模块接口。我们在前面的实例中已经看到了这一点。

语法

export([FunctionName1/FunctionArity1,.,FunctionNameN/FunctionArityN])

在这里,

  • FunctionName−这是程序中的函数名称;

  • FunctionArity−这是与函数相关联的参数数目;

示例

-module(helloworld).-author("TutorialPoint").-version("1.0").-export([start/0]).start()->io:fwrite("HelloWorld").

上面的代码的输出结果是-

HelloWorld

导入

导入属性用于从另一模块导入函数以将其在本地使用

语法

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

在这里,

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

  • functionname/parameter−这是在模块中需要导入的函数

示例

-module(helloworld).-import(io,[fwrite/1]).-export([start/0]).start()->fwrite("Hello,world!\n").

在上面的代码中,我们使用的是import这个关键字来导入库“io”,指定导入fwrite函数。所以,现在每当调用fwrite函数,不必每次都要带上模块的名称。

上面的代码的输出结果是-

Hello,world!
编辑于2024-05-20 12:33