加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Ruby Hash.new vs哈希文字

发布时间:2020-12-16 22:15:07 所属栏目:百科 来源:网络整理
导读:我打电话给第三方API(用 PHP编写)传递一些键/值对. 此代码工作原理: h = Hash.newh['first_name'] = "Firstname"h['last_name'] = "Lastname"APICall([h]) # Record gets created 这不是: h = {'first_name' = "Firstname",'last_name' = "Lastname"}APICa
我打电话给第三方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 []应该有与{…}相同的行为

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读