Ruby 中的 Set 是否始终保留插入顺序?

2024-05-12

即,Ruby 的 Set 相当于 Java 的 LinkedHashSet 吗?


在 Ruby 1.9 中:yes。在 Ruby 1.8 中:可能不会.

Set uses a Hash内部 https://github.com/ruby/ruby/blob/trunk/lib/set.rb#L222;由于哈希值在 1.9 中是按插入顺序排列的,所以您可以开始了!

As mu 太短了 https://stackoverflow.com/users/479863/mu-is-too-short指出,这是一个实现细节,将来可能会改变(尽管不太可能)。值得庆幸的是,目前的实施Set是纯红宝石,可以改编成OrderedSet将来如果你喜欢的话

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ruby 中的 Set 是否始终保留插入顺序? 的相关文章

随机推荐

  • 如何在不显示父活动的情况下将一个全屏对话框片段替换为另一个全屏对话框片段?

    我有一个使用单个自定义 DialogFragment 类的活动 它的外观是数据驱动的 因此不同的调用看起来可能相当不同 它是 全屏 即 setStyle DialogFragment STYLE NO FRAME android R sty
  • 如何通过API退出Win32应用程序?

    我有一个使用 Win32 API 编写的 C Win32 应用程序 我希望强制它在其中一个函数中退出 有没有类似的东西Exit or Destroy or Abort 类似的东西会终止它吗 哎呀呀呀呀呀呀 不要做任何这些事情 exit 和
  • Vuex store.watch 只接受 Vue routerguard 中的函数

    我正在尝试观察并等待 Vue 路由器防护从 Vuex 获取最终值 但它会抛出异常 vuex store watch 只接受一个函数 这是代码 const isAdmin get store getters user isAdmin unde
  • Google Analytics PHP(发送信息)

    大意 我正在开发一个项目 我需要使用 Google Analytics 服务器端 我不需要检索信息 但我需要发送信息 我最终可以发送 js 脚本客户端 但在这种情况下它不是一个选项 以下大多数链接都非常旧 2012年 检索 不是我需要的 我
  • Apache Flink - “keyBy”中的异常处理

    由于代码错误或缺乏验证 进入 Flink 作业的数据可能会触发异常 我的目标是提供一致的异常处理方式 我们的团队可以在 Flink 作业中使用这种方式 而不会导致生产中出现任何停机 重启策略似乎不适用于此处 因为 简单的重启无法解决问题 我
  • 在哪里放置资源特定逻辑

    您能帮我考虑在 AngularJS 中将资源 服务 特定的业务逻辑放置在哪里吗 我觉得在我的资源上创建一些类似模型的抽象应该很棒 但我不确定如何做 API调用 gt GET customers 1 lt first name John la
  • 创建进程默认浏览器

    我目前正在使用 ShellExecute 打开 在用户浏览器中打开 URL 但在 Win7 和 Vista 中遇到了一些麻烦 因为该程序作为服务运行提升 我想获取线程 id 因此 ShellExecute 无法获取线程 id 因此我开始使用
  • 如何循环遍历颜色数组以更改按键背景(按下/向下)

    互联网 如果这与其他人没有什么关系 请原谅我 但我会将其留在这里 以防这是一个有效的问题 我正在尝试创建一个文本区域字段 其中用户每次按下键 a z 都会触发背景颜色更改 在数组中列出 我一直在用 JQuery 做这件事 我想我已经很接近了
  • SQL Express 上的 OLAP

    我想知道是否有任何桌面 OLAP 解决方案可以使用 SQL Express 因此不需要 Analysis Services 我的任务是找到一种方法让我们的客户能够制作 临时 报告 但其中绝大多数都是在 Sql Express 上 在以前的工
  • 如何使用 WinJS 以编程方式关闭 Win8 应用程序中的 MessageDialog?

    Here is 类似的问题 https stackoverflow com questions 12698666 how to close message dialog programmatically关于如何以编程方式关闭 Win8 应用
  • 如何根据当前日期时间发现财政年度?

    我需要基于当前或今天的日期时间的财政年度 假设我们认为今天的日期是10 April 2011 那么我需要输出为Financial Year 2012在某些情况下 我需要以短格式显示相同的输出FY12 我想以两种方式显示 在我们的要求中 考虑
  • Google Map v3 地图加载事件[重复]

    这个问题在这里已经有答案了 是否有任何侦听器来处理完全加载的地图 就我而言 我需要从地图获取边界 所以我这样做了 google maps event addListener this map bounds changed this mapL
  • Bloomberg Api 连接问题 - 连接失败

    我正在尝试 Bloomberg C API 示例 出现以下错误 ritesh Ritesh Desktop blpapi cpp 3 7 5 1 Linux RequestServiceExample 64 RequestServiceEx
  • 如何将数组与 setState 一起使用?

    我目前正在使用以下命令将数组映射到 setState 但没有设置任何内容 也没有记录任何错误 如果我明确地逐行写出它 它就会起作用 关于如何解决这个问题有什么想法或建议吗 使用数组设置状态 不设置状态 const myData messag
  • Net core EF 3.1 LINQ 字符串比较不再起作用

    我有以下课程 public class Employee public string Name get set 以及 EF Core 2 1 中的 LINQ 查询 Employee GetEmployeeByName string name
  • 有没有办法在没有 QApplication::exec() 的情况下使用 Qt?

    有没有一种安全的方法可以在不调用 QApplication exec 的情况下使用 Qt 我有许多不同的对象正在对多个资源执行长期进程 至少其中一个正在与 Web 应用程序服务器进行通信 我正在制作一个 GUI 应用程序 提示用户在正确的时
  • 阻止 div 容器调整大小

    我的 html 页面中有两列 一列向右浮动 另一列向左浮动 我已将两个容器的高度设置为 100 将两个容器的宽度设置为 50 我希望这两个容器适合中间的窗户 当用户水平调整窗口大小时 我不希望内容调整大小 我怎样才能做到这一点 Thanks
  • Android Activity 旋转刷新

    我是一名经验丰富的 NET 开发人员 但这是我的第一个 Android 应用程序 它让我发疯 这是一个运行良好的倒计时器 但是当您旋转屏幕时 它会重新初始化归零并停止倒计时的活动 这就是我尝试过的 我摆脱了 CountDownTimer 对
  • 如何处理剪贴板阻塞和其他异常情况

    在过去的几个小时中 我一直在追踪一个相当具体的错误 该错误是由于另一个应用程序打开了剪贴板而发生的 本质上 由于剪贴板是共享资源 根据 为什么我的共享剪贴板不起作用 http blogs msdn com rds archive 2006
  • Ruby 中的 Set 是否始终保留插入顺序?

    即 Ruby 的 Set 相当于 Java 的 LinkedHashSet 吗 在 Ruby 1 9 中 yes 在 Ruby 1 8 中 可能不会 Set uses a Hash内部 https github com ruby ruby