【问题标题】:can i use ":" in ruby hash我可以在红宝石哈希中使用“:”吗
【发布时间】:2015-05-29 01:03:29
【问题描述】:

目前我使用“=>”作为哈希

registrationData = {
        "webhook_uri" => "http://148.251.44.168:5000"
    }

   puts make_request("webhooks","POST",registrationData)

但我想像下面的代码那样使用“:”而不是“=>”

    registrationData = {
    "webhook_uri": "http://148.251.44.168:5000"
}

但是上面的代码会报错

syntax error, unexpected ':', expecting =>
"webhook_uri": "http://148.251.44.168:5000"

但似乎只有 api 接受这种格式

【问题讨论】:

    标签: ruby data-structures hash


    【解决方案1】:

    你做不到。此语法仅适用于 Symbol 哈希键。您可以做的是允许基于符号的哈希作为 make_request 方法的参数(或检查是否已经不允许) - 或使用来自 activesupport gem 的 HashWithIndifferentAccess

    【讨论】:

      【解决方案2】:

      你不能在 ruby​​

      2.2.0 :001 > { 'a': 'b' }
       => {:a=>"b"}
      

      无论如何,这会将密钥转换为符号。

      【讨论】:

        猜你喜欢
        • 2012-12-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-10-17
        • 1970-01-01
        • 1970-01-01
        • 2011-08-10
        相关资源
        最近更新 更多