从零冲击Erlang(三)

今天我要来好好的学习一下Erlang中的基本结构:元组。

在一些Erlang英文文档或者网络上的关于Erlang博客中出现的单词tuple指的就是元组。

元组的定义:元组是Erlang项式的定长的有序序列。元组用大括号{}来表示,来看几个例子

{1,2,3}

{one,two,three,four}

{from,"Russia","with love"} //题外话,”来自俄罗斯的爱情“ 007主题曲,很好听

{} //空的


就像上面这样简单,这些就是元组,最基本的,最简单的元组。

同时,元组里面也可以套入元组

{complex,{nested,"structure",{here}}} //这个元组里面套了一个,那一个里面又套了一个


总结一下元组:元组中出现的元素可以是同一类型,也可以是不同的数据类型,这些元素本身也可以是元组或者其他数据类型

在此基础上,Erlang有个标准约定:用原子作为第一个元素来标记元组数据的类型,如{size,42},{position,5,2},称为标记元组(tagged tuple)

我举个例子

假如我要表示一个人的信息(姓名,年龄,性别),我可以用元组去表示,{”Michael“,23,"male"},{"Tina",27,”female“},这样就行了。但是感觉很散,如果我把整个元组作为参数传递给函数,函数如何检查我传给它的参数是不是符合它事先约定的要求你,总不能用姓名”MichaelMa“或者年龄23或者性别”male“来判断吧。所以需要一个标记来标识这个元组,告诉别人这个元组的类型,进而可以这样优化,{person,”Michael“,23,"male"} , {person,"Tina",27,”female“},你看这样是不是感觉更好了,函数就可以通过判断第一个元素的类型来直接判断参数合不合法。同时把元组作为函数参数返回也是可以的。


正如C中的struct或者Java中的对象一样,元组是在Erlang中构造符合数据结构或一次性返回多个结果值的主要手段。

在实际使用中,常记使用标记元组有助于快速提升元组的使用技巧。


列出参考资料:

《Erlang/OTP并发编程实战》第二章


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值