我是 YAML 和 Ruby 的新手。我正在使用以下 Ruby 代码来解析 YAML 文件:
obj = YAML::load_file('test.yml')
'test.yml' 的以下 YAML 文件内容是否有效?
情况1:
test
在这种情况下,我没有指定test
(类似test : true
)的值,但我的 Ruby 解析代码不会引发错误。我认为这是无效的 YAML 语法。
案例二:
:test : true
在这种情况下,Ruby 代码将test
其视为符号而不是字符串,当我这样做时puts obj[:test]
,它返回的结果为“true”。这是Ruby的东西吗?其他语言会将其解释为字符串":test"
?
案例3:
:test : true
:test : false
在这种情况下,我的 Ruby 代码不会抛出重新定义的错误,而是采用(即):test
的最新值。为什么是这样?YAML 语法是否允许重新定义元素,在这种情况下只获取最新的值?:test
false