没有一种方法可以将标准 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(使用前将#替换为@)