如何通过数字索引获取哈希值
哈希:
h = {:a => "val1", :b => "val2", :c => "val3"}
我可以参考哈希值:
h[:a], h[:c]
但我想通过数字索引来引用:
h[0] => val1 h[2] => val3
可能吗?
h = {:a => "val1", :b => "val2", :c => "val3"} keys = h.keys h[keys[0]] # "val1" h[keys[2]] # "val3"
h.values
会给你一个请求的数组。
> h.values # ⇒ [ # [0] "val1", # [1] "val2", # [2] "val3" # ]
UPD虽然h[h.keys[0]]
的答案被标记为正确,但我对基准测试有点好奇:
h = {:a => "val1", :b => "val2", :c => "val3"} Benchmark.bm do |x| x.report { 1_000_000.times { h[h.keys[0]] = 'ghgh'} } x.report { 1_000_000.times { h.values[0] = 'ghgh'} } end # # user system total real # 0.920000 0.000000 0.920000 ( 0.922456) # 0.820000 0.000000 0.820000 ( 0.824592)
看起来我们正在吐出10%的生产力。
那么你需要数组索引和哈希索引吗?
如果只需要第一个,请使用数组。
否则,您可以执行以下操作:
h.values[0] h.values[1]
- Nanoc在github中部署页面时更改基本路径
- 在ruby中,如何在创建OpenSSL PKCS12对象后获取主题,颁发者等
- Heroku Rails Net :: HTTP:OpenSSL :: SSL :: SSLError:SSL_connect返回= 1 errno = 0状态= SSLv3读取服务器证书B:证书validation失败
- 如何用Capybara关闭浏览器?
- 使用LDAP / AD登录身份validation时如果使用AD记录不存在用户行,如何创建用户行
- 在ruby中访问嵌套哈希的元素
- 安装“nio4r”时使用rails 5.0.0:无法构建gem原生扩展
- 存储桶中的Ruby访问文件夹的aws-sdk
- 如何将数字转换为多行数字