gpt4 book ai didi

list - 为什么 Elixir 在标准库中有这么多类似的列表类型?

转载 作者:行者123 更新时间:2023-12-01 00:15:04 25 4
gpt4 key购买 nike

我正在做 Elixir koans ,而且我已经完成了类似五种不同的列表数据类型的工作:

  • 列表
  • 字符列表
  • 单词表
  • 元组
  • 关键字列表
  • map
  • map 集
  • 结构

我购买了其中一些,但同时购买了所有这些?是否有人真的将所有这些列表用于严格分开的目的?

最佳答案

简短的回答是:是的。

长答案是:

  • 列表 - 是您随处使用的基本数据结构。列表是有序的并允许重复。主要用例是:同质变长集合
  • Charlists——Elixir 使用字符串(基于二进制文件),而 Erlang 通常使用 charlists(整数代码点列表)。主要是兼容接口(interface);
  • 单词列表 - 我从未听说过这些;
  • 元组 - 是您随处使用的另一种基本数据结构。主要用例是:异构定长集合;
  • 关键字列表 - 很常见,主要用于选项。它是列表和元组(二元组列表)之上的简单抽象。允许重复键并保持键的顺序,因为它们是有序的模式匹配是非常不切实际的。
  • map - 也很常见。允许对键进行简单的模式匹配,但不允许重复键和无序键。
  • MapSet - 集合是一种基本数据结构 - 一种无序的、唯一的元素集合。
  • 结构 - 是 Elixir 中多态性的主要机制(通过协议(protocol)),允许创建更严格的结构,并在编译时强制执行键集。

对于函数式编程,选择正确的数据结构来表示您的数据通常是问题的一半,这就是为什么您会得到这么多具有​​不同特征的不同结构。每一个都有自己的用例,并且以不同的方式发挥作用。

关于list - 为什么 Elixir 在标准库中有这么多类似的列表类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40068243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com