- 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 提供了各种内置数据类型。以下是 Erlang 中定义的数据类型列表:
数字 - 在 Erlang 中,有两种类型的数字文字,即整数和浮点数。
原子 - 原子是文字,是具有名称的常量。如果原子不是以小写字母开头,或者包含除字母数字字符、下划线 (_) 或 @ 之外的其他字符,则应将其括在单引号 (') 中。
布尔值 - Erlang 中的布尔数据类型是两个保留原子:true 和 false。
比特串 - 比特串用于存储未类型化的内存区域。
元组 - 元组是一种复合数据类型,具有固定数量的项。元组中的每个项都称为元素。元素的数量称为元组的大小。
映射 - 映射是一种复合数据类型,具有可变数量的键值关联。映射中的每个键值关联都称为关联对。对的键和值部分称为元素。关联对的数量称为映射的大小。
列表 - 列表是一种复合数据类型,具有可变数量的项。列表中的每个项都称为元素。元素的数量称为列表的长度。
注意 - 您会惊讶地发现,您在上面的列表中找不到字符串类型。这是因为 Erlang 中没有专门定义的字符串数据类型。但是我们将在后续章节中看到如何使用字符串。
以下是每种数据类型如何使用的一些示例。同样,每种数据类型将在接下来的章节中详细讨论。这只是让您初步了解上述数据类型的简要描述。
数字
以下程序显示了如何使用数字数据类型的示例。此程序显示了 2 个整数的加法。
示例
-module(helloworld). -export([start/0]). start() -> io:fwrite("~w",[1+1]).
上述程序的输出将是:
输出
2
原子
原子应以小写字母开头,可以包含小写和大写字符、数字、下划线 (_) 和“at”符号 (@)。我们也可以将原子括在单引号中。
以下程序显示了如何使用原子数据类型的示例。在此程序中,我们正在创建一个名为 atom1 的原子。
示例
-module(helloworld). -export([start/0]). start() -> io:fwrite(atom1).
上述程序的输出将是:
输出
atom1
布尔值
以下程序显示了如何使用布尔数据类型的示例。此示例比较了 2 个整数,并将结果布尔值打印到控制台。
示例
-module(helloworld). -export([start/0]). start() -> io:fwrite(2 =< 3).
上述程序的输出将是:
输出
true
比特串
以下程序显示了如何使用比特串数据类型的示例。此程序定义了一个由 2 位组成的比特串。binary_to_list 是 Erlang 中定义的内置函数,可用于将比特串转换为列表。
示例
-module(helloworld). -export([start/0]). start() -> Bin1 = <<10,20>>, X = binary_to_list(Bin1), io:fwrite("~w",[X]).
上述程序的输出将是:
输出
[10,20]
元组
以下程序显示了如何使用元组数据类型的示例。
这里我们定义了一个元组 P,它有 3 个项。tuple_size 是 Erlang 中定义的内置函数,可用于确定元组的大小。
示例
-module(helloworld). -export([start/0]). start() -> P = {john,24,{june,25}} , io:fwrite("~w",[tuple_size(P)]).
上述程序的输出将是:
输出
3
映射
以下程序显示了如何使用映射数据类型的示例。
这里我们定义了一个映射 M1,它有 2 个映射。map_size 是 Erlang 中定义的内置函数,可用于确定映射的大小。
示例
-module(helloworld). -export([start/0]). start() -> M1 = #{name=>john,age=>25}, io:fwrite("~w",[map_size(M1)]).
上述程序的输出将是:
输出
2
列表
以下程序显示了如何使用列表数据类型的示例。
这里我们定义了一个列表 L,它有 3 个项。length 是 Erlang 中定义的内置函数,可用于确定列表的大小。
示例
-module(helloworld). -export([start/0]). start() -> L = [10,20,30] , io:fwrite("~w",[length(L)]).
上述程序的输出将是:
输出
3