有没有一个有效的原因没有方法返回一个标准的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"}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。