Ruby Hash.new vs哈希文字

前端之家收集整理的这篇文章主要介绍了Ruby Hash.new vs哈希文字前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我打电话给第三方API(用 PHP编写)传递一些键/值对.

代码工作原理:

h = Hash.new
h['first_name'] = "Firstname"
h['last_name'] = "Lastname"
APICall([h]) # Record gets created

这不是:

h = {'first_name' => "Firstname",'last_name' => "Lastname"}
APICall([h]) # Record does not get created

当我在两个实例中将哈希转储到控制台时,我得到相同的数据结构.那么为什么第一种方式是工作,但第二种不行?

编辑:不知道这是否重要,但我使用的是Ruby 1.8.7p72 / Linux.键/值对之一是Base64编码的图像字符串.

解决方法

作为Hash类的文档:

[](* args)public

创建用给定对象填充的新哈希值.相当于文字{key =>价值,…}.在第一种形式中,键和值成对出现,因此必须有偶数个参数.第二和第三个表单采用单个参数,它是键值对的数组或可转换为散列的对象.

Hash["a",100,"b",200]             #=> {"a"=>100,"b"=>200}
Hash[ [ ["a",100],["b",200] ] ]   #=> {"a"=>100,"b"=>200}
Hash["a" => 100,"b" => 200]         #=> {"a"=>100,"b"=>200}

http://apidock.com/ruby/Hash/%5B%5D/class

所以至少Hash []应该有与{…}相同的行为

猜你在找的Ruby相关文章