京东云服务器推荐配置、多种配置选择,满足不同业务需求!

热门推荐

⭐ 稳定入门选择

配置:2核2G/5M

适用场景:个人站点 / 轻量应用

特点:性价比高,稳定可靠

¥19/月
立即购买
流量友好

☁️ 轻量云主机

配置:2核4G 5M

适用场景:小型业务 / 博客 / 测试环境

特点:流量友好,性能均衡

¥149/年
立即购买
高性能

💻 云服务主机

配置:4核16G 8M

适用场景:中小型服务 / 多并发场景

特点:充足内存与带宽,性能强劲

¥750/年
立即购买
新人专享

🎁 新人福利

新人访问 → 点击 → 最新活动

可获取 3000元 礼券

立即领取
服务端 / Erlang 教程 / Erlang 教程
Erlang 模块
Erlang 递归Erlang 函数

Erlang 模块

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

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

定义模块

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

函数声明的语法如下 :

语法

-module(modulename)

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

示例

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

start() -> 
   io:fwrite("Hello World").

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

Hello World

模块属性

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

属性的一般语法是 -

语法

-Tag(Value)

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

示例

-module(helloworld). 
-author("TutorialPoint"). 
-version("1.0"). 
-export([start/0]). 

start() -> 
   io:fwrite("Hello World").

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

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

Hello World

预先内置属性

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

导出

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

语法

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

在这里,

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

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

示例

-module(helloworld). 
-author("TutorialPoint"). 
-version("1.0"). 
-export([start/0]). 

start() -> 
   io:fwrite("Hello World").

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

Hello World

导入

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

语法

-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!
Erlang 递归Erlang 函数
上一篇:Erlang 函数
下一篇:Erlang 递归