Erlang - 数据类型

Erlang - 数据类型 首页 / Erlang入门教程 / Erlang - 数据类型

您可能希望存储各种数据类型的信息,例如string,character,wide character,integer,floating point,Boolean 等,系统根据变量的数据类型分配内存。

内置数据类型

Erlang提供了多种内置数据类型,以下是在Erlang中定义的数据类型的列表-

  • Number    -  在Erlang中,它们是integers和floats。

  • Atom         -   常量,如果atom不是以小写字母开头,或者包含字母数字字符,下划线(_)或@以外的其他字符,则将其括在单引号(')中。

  • Boolean    -   布尔类型,只有两个值: true和false。

  • Bit String  -   位字节存储

  • Tuple         -   元组是具有固定数量项的复合数据类型。

  • Map           -   映射是一种复合数据类型,具有可变数量的键-值关联。

  • List             -   列表是具有可变项数的复合数据类型。

注意-您会惊讶地发现在上面列表中的任何地方都看不到字符串String类型,那是因为没有在Erlang中专门定义的字符串数据类型。

以下是如何使用每种数据类型的示例,同样,每种数据类型将在随后的章节中详细讨论,这只是为了让您熟悉上述数据类型的简要说明。

Number 数字类型

以下程序显示了如何使用数字数据类型的示例。该程序显示了2个整数的加法。

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

start() ->
   io:fwrite("~w",[1+1]).

上面程序的输出将是-

2

ATom 原子类型

Atoms应以小写字母开头,并且可以包含小写和大写字符,数字,下划线(_)和“ at”符号(@)。

以下程序显示了如何使用原子数据类型的示例。在这个程序中,我们正在创建一个名为 atom1 的原子。

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

start() ->
   io:fwrite(aLearnfk1).

上面程序的输出将是-

aLearnfk1

Boolean 布尔类型

以下程序显示了如何使用布尔数据类型的示例。

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

start() ->
   io:fwrite(2 =< 3).

上面程序的输出将是-

true

Bit String 位串类型

以下程序显示了如何使用位字符串数据类型的示例。binary_to_list是用Erlang定义的内置函数,可用于将位字符串转换为列表。

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

start() ->
   Bin1=<<10,20>>,
   X=binary_to_list(Bin1),
   io:fwrite("~w",[X]).

上面程序的输出将是-

[10,20]

Tuple 元组类型

 tuple_size 是用Erlang定义的内置函数,可用于确定元组的大小。

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

start() -> 
   P={john,24,{june,25}} , 
   io:fwrite("~w",[tuple_size(P)]).

上面程序的输出将是-

3

Map 映射类型

 map_size 是用Erlang定义的内置函数,可用于确定Map的大小。

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

start() -> 
   M1=#{name=>john,age=>25}, 
   io:fwrite("~w",[map_size(M1)]).

上面程序的输出将是-

2

List 列表类型

length是用Erlang定义的内置函数,可用于确定列表的大小。

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

start() -> 
   L=[10,20,30] , 
   io:fwrite("~w",[length(L)]).

上面程序的输出将是-

3

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

微服务架构核心20讲 -〔杨波〕

深入浅出区块链 -〔陈浩〕

TensorFlow快速入门与实战 -〔彭靖田〕

透视HTTP协议 -〔罗剑锋(Chrono)〕

黄勇的OKR实战笔记 -〔黄勇〕

DevOps实战笔记 -〔石雪峰〕

雷蓓蓓的项目管理实战课 -〔雷蓓蓓〕

如何讲好一堂课 -〔薛雨〕

手把手教你落地DDD -〔钟敬〕

好记忆不如烂笔头。留下您的足迹吧 :)