加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

将结构数据返回为ruby中的哈希

发布时间:2020-12-16 20:42:53 所属栏目:百科 来源:网络整理
导读:有没有一个有效的原因没有方法返回一个标准的ruby结构体的数据作为哈希(成员,值对)? 看到结构和散列有非常相似的用例,我很惊讶,没有这样的方法存在.还是这样,我只是太盲目了 它很容易实现(而且我现在已经这么做了),但是在标准库中缺少这样的功能,让我觉得我
有没有一个有效的原因没有方法返回一个标准的ruby结构体的数据作为哈希(成员,值对)?
看到结构和散列有非常相似的用例,我很惊讶,没有这样的方法存在.还是这样,我只是太盲目了

它很容易实现(而且我现在已经这么做了),但是在标准库中缺少这样的功能,让我觉得我可能没有真正掌握Ruby中的结构体的概念.

解决方法

(Ruby< = 1.9.3)OpenStruct有 OpenStruct#marshall_dump和Struct有 Struct#each_pair(使用to_a获取对和Hash to_a获取哈希):
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的东西比较容易:Struct#to_h,OpenStruct#to_h:

Person = Struct.new(:name,23)
person_hash = person.to_h
#=> {:age=>23,:name=>"Jamie"}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读