当前位置:  开发笔记 > 编程语言 > 正文

使用关联列表而不是记录是否是个好主意?

如何解决《使用关联列表而不是记录是否是个好主意?》经验,为你挑选了2个好方法。

任何有经验的Erlang程序员都会推荐关联记录吗?

一种情况可能是不同机器上的两个(或更多)节点正在交换消息.我们希望能够独立升级每台机器上的软件.某些升级可能涉及向正在发送的一个(或多个)消息添加字段.似乎使用记录,因为消息意味着你总是必须在锁定步骤中对两台机器进行升级,以便额外的字段不会导致接收器忽略记录.然而,如果您使用类似关联列表(仍然具有"类似记录"API)的内容,尚未升级的接收器仍将成功接收消息并忽略新字段.我意识到这并不总是理想的行为,但往往是这样.此外,假设消息相当小,因此查找时间无关紧要.

假设上述内容有一定道理,我还有以下其他问题:

是否有一个标准(或广泛使用)的图书馆?一些琐碎的谷歌搜索没有发现任何东西.

在其他情况下你会使用关联列表(或类似的东西)吗?

Hynek -Pichi.. 5

对于按键的少量您可以使用列表又名proplists更大的,你应该使用字典.在这两种情况下,最大的缺点是你不能像记录那样使用模式匹配.还有速度惩罚,但在大多数情况下无关紧要.



1> Hynek -Pichi..:

对于按键的少量您可以使用列表又名proplists更大的,你应该使用字典.在这两种情况下,最大的缺点是你不能像记录那样使用模式匹配.还有速度惩罚,但在大多数情况下无关紧要.



2> Jeremy Wall..:

你基本上有三种选择:

    使用记录

    使用关联列表(proplists)

    使用组合

我使用记录,其中更改它的可能性非常低.这样我就能得到模式匹配并加速我想要的速度.

我使用proplists,我需要哈希表功能.我以牺牲模式匹配和速度为代价获得灵活性.

有时我会同时使用它们.具有一个支持列表的字段的记录.这样我可以在其中的一部分上进行模式匹配,并且在我需要的地方具有灵活性.

所有这三种选择都有不同的权衡,因此您基本上只需要评估您的特定需求并做出选择.可能需要进行一些原型设计和游戏,以确定哪些权衡有意义以及您绝对必须具备哪些功能.

推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有