Erlang复合数据结构基础之元组与列表

来源:互联网 发布:网络的利与弊作文800 编辑:程序博客网 时间:2024/06/04 23:13

一、元组

前面介绍的整数、浮点数、原子等类型的数据,它们都是简单类型的数据。在生活中我们时常会用到一组数据,这一组数据由可能由多个相同类型的简单数据构成,也可能由多个不同类型的数据构成,比如描述一个人,会有姓名(可用原子描述)、身高(可用浮点数描述)、体重(可用浮点数描述)、年龄(可用整数描述)。这些如果单独存放则不得于数据的组织和使用,所以可以用元组来存放他们:

{john,17.4,60.3,34}

用一个元组就可以描述一个人的基本特征。元组需要用“{}”包围,其中各项用“,”来分隔。当然一个元组可以只包括一个元素。而用这样的元组来描述信息的话,就会使人看不懂哪个数据描述的是什么特征,所以常用以下形式的元组来描述:

{person,{name,john},{height:17.4},{weight:60.3},{age,34}}

二、列表

对于元组中的那一列数据,如果要用列表形式书写,其形式如下:

[john,17.4,60.3,34]

可以看出,和元组的写法上的区别仅仅是将包围的符号改成了“[]”,其他没有什么不同。但是元组和列表的操作是不同的,这在下文中将会进行详解。

如果仔细推敲一下的话,用列表的形式来表达这样的数据是不妥的,因为他表示着不同属性的数据,在数据处理时,不能等同对待。所以,列表一般用来存放具有相同类型的数据。

此外,列表和元组都是可以嵌套或互相嵌套的。

[{2,3},{6,7}]

[{3,5},[6,0],6]

{6,kick,[ka,ha]}

以上都是正确的列表或元组。