哈希中数组的YAML缩进
我认为缩进在YAML中很重要。
我在irb
测试了以下内容:
> puts({1=>[1,2,3]}.to_yaml) --- 1: - 1 - 2 - 3 => nil
我期待这样的事情:
> puts({1=>[1,2,3]}.to_yaml) --- 1: - 1 - 2 - 3 => nil
为什么数组没有缩进?
我在http://www.yaml.org/YAML_for_ruby.html#collections找到了这个。
序列中的破折号计为缩进,因此您可以在映射内添加序列,而不需要空格作为缩进。
就我所知,这两种方式都是有效的:
require 'yaml' YAML.load(%q{--- 1: - 1 - 2 - 3 }) # => {1=>[1, 2, 3]} YAML.load(%q{--- 1: - 1 - 2 - 3 }) # => {1=>[1, 2, 3]}
目前尚不清楚为什么你认为在连字符之前应该有空格。 如果您认为这违反了规范 ,请解释如何。
为什么数组没有缩进?
在连字符之前不需要缩进,并且更简单的是不添加任何缩进。
你可以这样做:
1: - 2: 3 4: 5 - 6: 7 8: 9 - 10 => {1 => [{2 => 3, 4 => 5}, {6 => 7, 8 => 9}, 10]}
基本上,破折号分隔对象,缩进表示键值对的“值”。
这是我能做的最好的事情; 我没有设法找到这个或那个方面的语法背后的任何原因。