写erlang代码时,参数或者返回值到底是用{ }元组,还是[ ]列表,还是不能随便用,总结了几点:
当数据需要进行 [H|T] 处理的时候,使用[ ]列表,这是使用列表最重要的依据;其次就是这一些数据的类型是一致的。
如果参数一个结构化的数据,则使用{ }元组,这些数据共同表达了一个数据结构,但是数据之间又没有直接的联系,比如:
{"sdjcw", "123@abc", "sdjcw@xxx.com"}
三个参数分别表示用户的帐号、密码、电子邮箱,一起表达了“用户注册”的数据结构,但数据之间没有什么联系(帐号和邮箱不是一类东西),在一起传递时可以使用{ }。
那是否使用dict结构会更好?如:
[{user, "sdjcw"}, {password, "123@abc"}]
我觉得也不一定,虽然dict结构能方便的通过dict:from_list/1转换为一个dict使用,但是普通情况下直接使用值组成的元组会简单些。
至于MFA中的A(参数列表),是用[ ]括起来(貌似gen_server中只有一个参数的情况下不括也能用,不过不推荐!)。这里不管你的参数组合起来是否是有意义的数据结构,对于MFA来说,就是“一堆参数”,所以和第一条“类型是一致的”不冲突。
我能想到的就这些,欢迎补充,如有不妥请拍砖~
分享到:
相关推荐
Erlang并发编程,Erlang程序设计,Erlang中文手册。 学习erlang的好资料。 Erlang是一个结构化,动态类型编程语言,内建并行计算支持。最初是由爱立信专门为通信应用设计的,比如控制交换机或者变换协议等,因此...
erlang 中文基础教程erlang 中文基础教程
这个是在erlang项目中使用google protobuf例子,配套文章地址http://blog.csdn.net/mycwq/article/details/21864191
erlang中文基础教程
诊断以及调试生产环境中的Erlang 系统。在程序员学习新的语言和环境时,都需要一个摸索 阶段,也就是学会在社团的帮助下,脱离指南,解决实际问题。 本书假设读者精通基本的Erlang和OTP框架。在本书中,会对一些难以...
NULL 博文链接:https://langzhe.iteye.com/blog/1123218
Erlang/OTP R11B 文档 Erlang/OTP R11B documentation
erlang入门电子书 erlang编程 Introducing Erlang,作者Simon.St.Laurent
●外部接口-Erlang进程与外部世界之间的通讯使用和在Erlang进程之间相同的消息传送机制。 ●Fail-fast(中文译为速错),即尽可能快的暴露程序中的错误。 ●面向并发的编程(COP concurrency-oriented ...
Erlang中文手册
erlang 安装包
Erlang 中的Module级别热部署
Erlang及其应用Erlang及其应用Erlang及其应用
●外部接口-Erlang进程与外部世界之间的通讯使用和在Erlang进程之间相同的消息传送机制。 ●Fail-fast(中文译为速错),即尽可能快的暴露程序中的错误。 ●面向并发的编程(COP concurrency-oriented programming) ...
ErlangB和ErlangC计算工具(exe可执行文件+excel两个) ErlangB和ErlangC计算工具(exe可执行文件+excel两个)
erlang 中文,chm参考文档
erlang文献及资料汇总 ...硝烟中的Erlang 深入底层: erlang VM基于多核处理器的可伸缩性特征 erlang VM内部数据共享机制 erlang 消息传递机制 文章地址:http://blog.csdn.net/mycwq/article/details/43115733