-1

我可以在 ruby​​ 中引入基于缩进的哈希吗?像咖啡散列这样的东西。

a: 1
  b: 
    c: 3
    d: 4
  e:
    f: 'qwe'
4

3 回答 3

4

不是直接的,但我认为你会喜欢YAML

于 2013-02-01T13:33:37.073 回答
1

是的,您可以实现一种方法来使用缩进作为分隔符来解析字符串中的哈希值,或者,正如@AJcodez 所建议的那样:

require 'psych'
require 'yaml'

yash = <<EOT  # type hashes like this
---
:a:
- 1
- :b:
    :c: 3
    :d: 4
  :e:
    :f: qwe
EOT

hash = YAML.load yash
=> {:a=>[1, {:b=>{:c=>3, :d=>4}, :e=>{:f=>"qwe"}}]}
于 2013-02-01T13:44:40.510 回答
0

如果您眯着眼睛许愿,那么常规语法与您正在寻找的语法有点相似。

h = { a: 1,
        b:{ 
          c: 3,
          d: 4},
        e:{
          f: 'qwe'}}
于 2013-02-01T13:46:59.523 回答