gpt4 book ai didi

ruby - 列出 ruby​​ 中的实现?

转载 作者:数据小太阳 更新时间:2023-10-29 07:42:12 25 4
gpt4 key购买 nike

我对 Ruby 中的 Array 类的理解有点吃力。我在谷歌上看到Array 类实际上更像是一个列表,但我似乎无法找到它的实际工作原理。

我非常关心性能问题,因为我必须处理大型排序列表,并且我不想跨过整个数组来向它添加单个元素。

所以我想知道是否有列表的真实和清晰的实现(例如在 caml 中),我也在寻找有关如何实现 Array 方法的良好文档,关于优化很重要。

谢谢!

最佳答案

Ruby 数组提供了完整的列表接口(interface):

  • push/<<用于在末尾添加元素
  • each为列表遍历提供迭代器
  • sort允许您使用自定义比较器的可选 block 对项目进行排序
  • ...

所以显然不需要特殊的 List 类或模块 - 以 Java 为例,如果我们一直需要 List,我们最终会使用 ArrayList 因为它为我们提供了良好的性能和通过索引访问元素的额外好处。因此,Ruby(类似于 Python、PHP 或 Lua 等其他语言)试图通过仅提供三种类型(ArrayHashSet - 因此具有丰富的接口(interface),可以轻松模拟其他集合类型,例如 List、Queue 或 Deque 等。

如果您想了解有关实现的详细信息,我建议您只需下载 Ruby 源代码并研究相应的文件(对于 MRI,它是顶级目录中的 array.c)。

关于ruby - 列出 ruby​​ 中的实现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7128886/

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