我可以在 ruby 中引入基于缩进的哈希吗?像咖啡散列这样的东西。
a: 1
b:
c: 3
d: 4
e:
f: 'qwe'
我可以在 ruby 中引入基于缩进的哈希吗?像咖啡散列这样的东西。
a: 1
b:
c: 3
d: 4
e:
f: 'qwe'
不是直接的,但我认为你会喜欢YAML。
是的,您可以实现一种方法来使用缩进作为分隔符来解析字符串中的哈希值,或者,正如@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"}}]}
如果您眯着眼睛许愿,那么常规语法与您正在寻找的语法有点相似。
h = { a: 1,
b:{
c: 3,
d: 4},
e:{
f: 'qwe'}}