在 ruby​​ 中以哈希形式返回结构数据

2023-12-27

没有一种方法可以将标准 ruby​​ 结构的数据作为散列(成员、值对)返回,是否有正当理由? 看到结构和哈希具有非常相似的用例,我很惊讶不存在这样的方法。还是我真的太盲目了?

它很容易实现(我现在已经这样做了),但是标准库中缺乏这样的功能,让我想我可能还没有真正掌握 ruby​​ 中结构的概念。


Ruby OpenStruct#marshall_dump and 结构#each_pair http://www.ruby-doc.org/core-1.9.3/Struct.html:

Person = Struct.new(:name, :age)
person = Person.new("Jamie", 23)
person_hash = Hash[person.each_pair.to_a]
#=> {:age=>23, :name=>"Jamie"}

Ruby 2.0 提供结构#to_h http://www.ruby-doc.org/core-2.0/Struct.html#method-i-to_h and OpenStruct#to_h http://ruby-doc.org/stdlib-2.0/libdoc/ostruct/rdoc/OpenStruct.html#method-i-to_h:

Person = Struct.new(:name, :age)
person = Person.new("Jamie", 23)
person_hash = person.to_h
#=> {:age=>23, :name=>"Jamie"}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 ruby​​ 中以哈希形式返回结构数据 的相关文章

  • Ruby Net:SSH控制大师?

    我目前有一个 Ruby Rails 应用程序 需要建立大量的短 SSH 连接 使用 Ruby Net SSH 库可以正常工作 只是每次我想发出命令时应用程序都必须登录并协商密钥 这太慢了 有没有办法使用 Ruby Net SSH 启用 Co
  • MacOS 每秒唤醒次数错误

    构建 Rails 应用程序 ruby 2 4 0p0 Rails 5 1 4 并使用我的 Macbook Air MacOS High Sierra 10 13 2 进行本地测试 我不断遇到此问题 过去 241 秒内有 45001 次唤醒
  • 地图、每个和收集之间有什么区别? [复制]

    这个问题在这里已经有答案了 在 Ruby 中 功能之间有什么区别吗 each map and collect each不同于map and collect but map and collect是相同的 技术上map是一个别名collect
  • 避免在 Ruby 中自动从 Fixnum 转换为 Bignum

    我正在将算法从 C 移植到 Ruby 该算法有一个方法返回一个int有时会溢出 private static int NextRandom int n return 1234567890 n 12345 该算法利用溢出来避免该函数返回的值超
  • 从 ActiveRecord 获取表名

    I used ActiveRecord Base set table name在动态创建的 ActiveRecord 类上设置我的表名称 现在我需要知道稍后如何获得该值 api 文档没有提及如何执行此操作 另外 我无法从 ActiveRec
  • Ruby 在带有偏移量的数组中查找

    我正在寻找一种以更简洁的方式在 Ruby 中执行以下操作的方法 class Array def find index with offset offset block offset 1 find block end end offset a
  • Ruby:在 Ubuntu 上安装 rmagick

    我正在尝试在 Ubuntu 10 04 上安装 RMagick 看起来here https stackoverflow com questions 1482823 is there an easy way to install rmagic
  • 如何让 Sinatra 通过 HTTPS/SSL 工作?

    正如标题所示 谷歌没有提供任何与此相关的有用信息 如何为 Sinatra 应用程序设置和配置 HTTPS SSL 如何创建 HTTPS 路由 我以前从未在我的应用程序中使用过 HTTPS 也没有调整 Rack 其他内容的经验 所以我很欣赏详
  • Ruby on Rails 最酷的功能是什么,为什么选择它? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在我问这个问题之前 我浏览了 SO 上 Ruby on Rails 的搜索结果 找不到太多 但以下 在此页面上找到 https stackove
  • 在 ruby​​ 中读/写受密码保护和加密的文件

    我想加密一个 ruby 程序将从中加载数据的文件 此外 我需要程序在启动时提示输入密码 该密码将用于解密文件 换句话说 该文件需要加密地驻留在计算机上 只有拥有密码的用户才能运行该应用程序 我已经开始研究 openpgp 但据我了解 这仍然
  • 方法调用中是否有记忆约定?

    我想避免在方法调用中重新评估值 直到现在 我一直在这样做 def some method some method begin lot s of code end end 但它最终变得非常丑陋 在一些代码中 我看到类似以下内容 def som
  • 使用 YAML.load 解析 json 安全吗?

    我使用的是红宝石2 1 0 我有一个 json 文件 例如 测试 json item apple 1 banana 2 使用 YAML load 加载此文件是否安全 YAML load File read test json 我正在尝试加载
  • 从类内部调用属性访问器方法[重复]

    这个问题在这里已经有答案了 我正在尝试调用我的类属性编写器之一 但由于某种原因它永远不会被调用 下面是一些代码 可以使这一点更清楚 class Test attr reader test def test val puts Called t
  • Ruby mp3 Id3 解析

    目前我正在从事一个音乐项目 处理用户 mp3 上传 问题是我找不到适用于所有文件的 id3 库 我努力了id3 ruby and Mp3Info库 但它们都没有给我一致正确的结果 例如 最常见的问题 错误的流参数 比特率和采样率 有时是持续
  • 为什么 rand() 总是返回相同的数字?

    我在用 兰特 200 在我的 Rails 应用程序中 当我在控制台中运行它时 它总是返回随机数 但如果我在应用程序行中使用它 index rand 200 索引总是相同的号码 为什么会这样以及如何克服这个问题 简单的伪随机数生成器实际上生成
  • RSpec 请求规范发布一个空数组

    我目前正在 Rails 中开发 API 端点 如果我需要的数据无效 我想确保端点响应具有正确的错误状态 我需要一个 id 数组 无效值之一是空数组 Valid vendor district ids 2 4 5 6 Invalid vend
  • 下载所有 gems 依赖项

    我想通过下载任何所需的文件并将它们带到另一台计算机来安装指南针没有互联网连接 我已经下载了指南针的源包 当我在未连接的计算机上运行 gem 时 它抱怨缺少依赖项 有什么解决办法吗 这正是我遇到的问题 经过一段时间的搜索后 我找到了一个可以使
  • 为什么||和 或 在 Rails 中的行为有所不同? [复制]

    这个问题在这里已经有答案了 可能的重复 i true 和 false 在 Ruby 中是真的吗 https stackoverflow com questions 2802494 i true and false in ruby is tr
  • Ruby gem 环境问题 - LoadError: no such file to load -- robots

    我正在尝试使用 anemone gem 编写一个爬虫 这需要 robots gem 不管出于什么原因 机器人绝对不会包括在内 这是我的一些环境信息 gem list d robots LOCAL GEMS robots 0 10 1 Aut
  • 将 Rack::Deflater 插入机架中的哪个位置?

    我目前有以下内容 use Rack Rewrite use Rack Cache verbose gt true metastore gt memcached localhost 11211 rack cache meta entityst

随机推荐

  • VueJS:选择同一文件时不会触发输入文件选择事件

    我们如何在 Vue Js 中文件输入检测相同文件输入的变化
  • 后退按钮未显示在导航控制器中

    我已将一个视图控制器中的表单元格的显示序列添加到嵌入导航控制器中的另一个表视图 当我单击第一个视图中的单元格时 segue 按预期工作并显示新视图 但是 后退 按钮 带有原始视图的标题 不会出现在导航栏中 我搜索了 SO 发现过去提出过很多
  • 设置为背景的 SVG 线性渐变在 Edge 和 IE 中不起作用

    我使用带有线性渐变颜色的 SVG 形状 background url imgUrlBase element svg 除了 Edge 和 IE 之外 在任何地方都可以正常工作 形状显示正确 但不是渐变 只有纯色 由于多种原因 简单使用 png
  • 通过 Instagram API 使用 php 获取照片和点赞

    使用 Instagram 时client idAPI 请求如下 https api instagram com v1 users https api instagram com v1 users 用户 ID media recent cli
  • 如何在 Tkinter 文本框中设置对齐方式

    Question 如何更改特定行的对齐方式ScrolledTextTkinter 中的小部件 我原来的错误的原因是什么 背景 我目前正在开发 Tkinter 文本框应用程序 并且正在寻找更改行对齐方式的方法 最终 我希望能够更改特定行左对齐
  • C++ 中数组的静态边界检查

    我需要一些关于我正在学习的编程语言课程中的问题的指导 我们需要想出一种在 C 中实现数组类的方法 以便静态检查对其元素的访问是否存在溢出 我们不会使用 C 11 静态断言 或任何其他黑盒解决方案 这是一个理论问题 而不是我出于编码目的所需的
  • 来自数组的 PHP 值,其中键位于另一个数组中

    由于某种原因 我正在为此苦苦挣扎 我有2个数组 第一个是名为 colsArray 的标准数组 如下所示 Array 0 gt fName 1 gt lName 2 gt city 第二个是一个名为 query data 的多维数组 如下所示
  • 网站性能测试:如何最好地估计计算机性能?

    我的网页中有一些浏览器密集型 CSS 和动画 我想确定用户是否拥有快速的 PC 以便我可以相应地缩放内容以提供最佳体验 我在用http Detectmobilebrowser com http detectmobilebrowser com
  • 使用 LSTM 教程代码来预测句子中的下一个单词?

    我一直在尝试理解示例代码https www tensorflow org tutorials recurrent https www tensorflow org tutorials recurrent你可以在以下位置找到https git
  • 关于创建列的SettingWithCopyWarning [重复]

    这个问题在这里已经有答案了 我正在尝试为我的数据创建一个名为 mv avg 的移动平均列 我收到一个无法修复的SettingWithCopyWarning 我可以抑制警告 但我无法弄清楚我在代码中的何处创建副本 并且我想利用最佳实践 我在下
  • 使用同一个 var 关键字初始化多个 JavaScript 变量有什么好处?

    当我阅读由显然非常擅长的人编写的干净的 javascript 代码时 我经常看到这种模式 var x some initialization method y something els z 相对于写有什么好处 var x some ini
  • 如何在 Angular2 中创建结构组件

    我创建了一个结构指令 可以添加或删除应用它的元素 现在 我希望该指令将内容添加到应用它的元素中 但使用指令似乎不可能 因为它没有自己的模板 也许我应该创建一个组件而不是指令 这个官方指南似乎暗示了这一点 https angular io d
  • Hashicorp Vault AppRole:角色 ID 和秘密 ID

    我有一个 Django 应用程序 我希望它能从 Vault 获取所有需要的秘密 据我了解我需要使用AppRole https www vaultproject io docs auth approle html为了这 我创建了一个角色 但后
  • Android 选择电子邮件意图

    我想从联系人列表中选择一封电子邮件 选择一个联系人还不够好 因为一个联系人可能有多个电子邮件地址 使用 API 演示 我成功地选择了联系人 电话号码 甚至地址 例子 Intent intent new Intent Intent ACTIO
  • 尽管有 RxJava,Android 中还是会出现 UI 阻塞

    我正在使用 RxJava 将网络访问移至 Android 中的单独线程 但我的 UI 仍然阻塞 我没有使用错误的可观察值 如下所示 Android RxJava 非阻塞 https stackoverflow com questions 2
  • XPath 选择带句点的节点

    我有一个 XML 文档 其中一些节点有 以他们的名义
  • 如何使用 anaconda python 启用代理服务器

    我们正在尝试通过代理服务器让 conda 安装 在 Windows 8 上 在防火墙后面工作 目前 我们可以在公司网络上使用 pip 在命令提示符下安装软件包 pip install pandas proxy http abc def xy
  • 更新与 InfluxDB 中的条件匹配的多个字段值

    在InfluxDB测量中 如何更新与查询匹配的点的字段值 这还是吗从 v1 6 开始不容易实现 https github com influxdata influxdb issues 2575 正如 GitHub 票证中的示例所建议的 实现
  • 不设置用户名和电子邮件即可提交

    我试着commit像这样 git commit author Paul Draper lt email protected cdn cgi l email protection gt m My commit message 但我得到 Ple
  • 在 ruby​​ 中以哈希形式返回结构数据

    没有一种方法可以将标准 ruby 结构的数据作为散列 成员 值对 返回 是否有正当理由 看到结构和哈希具有非常相似的用例 我很惊讶不存在这样的方法 还是我真的太盲目了 它很容易实现 我现在已经这样做了 但是标准库中缺乏这样的功能 让我想我可