📅  最后修改于: 2020-11-04 05:48:31             🧑  作者: Mango
在任何编程语言中,您都需要使用多个变量来存储各种类型的信息。变量不过是用于存储值的保留内存位置。这意味着在创建变量时,您会在内存中保留一些空间来存储与该变量关联的值。
您可能希望存储各种数据类型的信息,例如字符串,字符,宽字符,整数,浮点数,布尔值等。操作系统根据变量的数据类型分配内存,并确定可以在保留的数据中存储什么记忆。
Erlang提供了多种内置数据类型。以下是在Erlang中定义的数据类型的列表-
数字-在Erlang中,数字字面量有2种类型,它们是整数和浮点数。
原子-原子是字面量,是带名称的常量。如果原子不是以小写字母开头,或者包含字母数字字符,下划线(_)或@之外的其他字符,则将其括在单引号(’)中。
布尔-Erlang中的布尔数据类型是两个保留的原子:true和false。
位字符串-位字符串用于存储未类型的内存区域。
元组-元组是具有固定数量项的复合数据类型。元组中的每个术语称为元素。元素的数量被称为元组的大小。
映射-映射是具有可变数量的键-值关联的复合数据类型。映射中的每个键-值关联称为关联对。该对中的键和值部分称为元素。关联对的数量被称为地图的大小。
列表-列表是具有可变项数的复合数据类型。列表中的每个术语称为一个元素。元素的数量被称为列表的长度。
注意-您会惊讶地发现在上面列表中的任何地方都看不到String类型。那是因为没有在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]
以下程序显示了如何使用Tuple数据类型的示例。
在这里,我们定义一个具有3个项的元组P。 tuple_size是用Erlang定义的内置函数,可用于确定元组的大小。
例
-module(helloworld).
-export([start/0]).
start() ->
P = {john,24,{june,25}} ,
io:fwrite("~w",[tuple_size(P)]).
上面程序的输出将是-
输出
3
以下程序显示了如何使用Map数据类型的示例。
在这里,我们定义了具有2个映射的Map M1 。 map_size是用Erlang定义的内置函数,可用于确定地图的大小。
例
-module(helloworld).
-export([start/0]).
start() ->
M1 = #{name=>john,age=>25},
io:fwrite("~w",[map_size(M1)]).
上面程序的输出将是-
输出
2
以下程序显示了如何使用List数据类型的示例。
在这里,我们定义了一个包含3个项目的列表L。长度是用Erlang定义的内置函数,可用于确定列表的大小。
例
-module(helloworld).
-export([start/0]).
start() ->
L = [10,20,30] ,
io:fwrite("~w",[length(L)]).
上面程序的输出将是-
输出
3