`
sdjcw
  • 浏览: 9212 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

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

阅读更多
写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来说,就是“一堆参数”,所以和第一条“类型是一致的”不冲突。

  • 我能想到的就这些,欢迎补充,如有不妥请拍砖~
    0
    0
    分享到:
    评论
    1 楼 yjl49 2012-03-14  
    个人觉得都差不多,你用{}也可以写成{atom,List}的方式。对于需要遍历的函数参数最好用List,省掉了匹配过程。

    相关推荐

    Global site tag (gtag.js) - Google Analytics