- Erlang 教程
- Erlang - 首页
- Erlang - 概述
- Erlang - 环境
- Erlang - 基本语法
- Erlang - Shell
- Erlang - 数据类型
- Erlang - 变量
- Erlang - 运算符
- Erlang - 循环
- Erlang - 决策
- Erlang - 函数
- Erlang - 模块
- Erlang - 递归
- Erlang - 数字
- Erlang - 字符串
- Erlang - 列表
- Erlang - 文件 I/O
- Erlang - 原子
- Erlang - 映射
- Erlang - 元组
- Erlang - 记录
- Erlang - 异常
- Erlang - 宏
- Erlang - 头文件
- Erlang - 预处理器
- Erlang - 模式匹配
- Erlang - 保卫
- Erlang - BIFS
- Erlang - 二进制
- Erlang - 函数
- Erlang - 进程
- Erlang - 邮件
- Erlang - 数据库
- Erlang - 端口
- Erlang - 分布式编程
- Erlang - OTP
- Erlang - 并发
- Erlang - 性能
- Erlang - 驱动
- Erlang - Web 编程
- 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").
上述程序定义了两个名为 author 和 version 的自定义属性,它们分别包含程序作者和程序版本号。
上述程序的输出为:
输出
Hello World
预构建属性
Erlang 有一些可以附加到模块的预构建属性。让我们来看看它们。
导出
exports 属性将获取函数和元数列表以供其他模块使用。它将定义模块接口。我们已经在我们之前的所有示例中看到了这一点。
语法
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 属性用于从另一个模块导入函数以用作本地函数。
语法
-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 函数,我们都不必在任何地方都提及 io 模块名称。
上述程序的输出将为:
输出
Hello, world!