erlang中参数或返回值到底使用{ }还是[ ]

写erlang代码时,参数或者返回值到底是用{ }元组,还是[ ]列表,还是不能随便用,总结了几点:
[*]当数据需要进行 [b][H|T][/b] 处理的时候,使用[ ]列表,这是使用列表最重要的依据;其次就是这一些数据的类型是一致的。
[*]如果参数一个[b]结构化[/b]的数据,则使用{ }元组,这些数据共同表达了一个数据结构,但是数据之间又没有直接的联系,比如:

{"sdjcw", "123@abc", "sdjcw@xxx.com"}

三个参数分别表示用户的帐号、密码、电子邮箱,一起表达了“用户注册”的数据结构,但数据之间没有什么联系(帐号和邮箱不是一类东西),在一起传递时可以使用{ }。
那是否使用dict结构会更好?如:
[{user, "sdjcw"}, {password, "123@abc"}]

我觉得也不一定,虽然dict结构能方便的通过dict:from_list/1转换为一个dict使用,但是普通情况下直接使用值组成的元组会简单些。
[*]至于MFA中的A(参数列表),是用[ ]括起来(貌似gen_server中只有一个参数的情况下不括也能用,不过不推荐!)。这里不管你的参数组合起来是否是有意义的数据结构,对于MFA来说,就是“一堆参数”,所以和第一条“类型是一致的”不冲突。

我能想到的就这些,欢迎补充,如有不妥请拍砖~
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值