• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ruby中将数组转换成hash

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

class Array
def to_h(default=nil)
Hash[ *inject([]) { |a, value| a.push value, default || yield(value) } ]
end
end

 

看懂这个方法先理解这个

p Hash[*[1,2,3,4]]
打印出
{1=>2, 3=>4}

扩展了一个to_h方法。这个*就是将数组调用inject方法返回的数组平铺,我是这么理解的,
当default为nil,也就是不传递参数给to_h时,把value传递给方法块运算,value和块运算结果都加入到数组a中,


事例

a.to_h(true)
# => {1=>true, 2=>true, 3=>true}
a.to_h { |value| [value * -1, value * 2] }
# => {1=>[-1, 2], 2=>[-2, 4], 3=>[-3, 6]}


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
rubyonrails模拟HTTP请求错误发生:endoffilereached发布时间:2022-07-14
下一篇:
ruby之selenium自动化orruby爬虫利器-selenium发布时间:2022-07-14
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap