我是YAML和Ruby的新手。我使用下面的Ruby代碼解析YAML文件:關於YAML語法和Ruby解析的說明
obj = YAML::load_file('test.yml')
是「test.yml」有效以下YAML文件內容是什麼?
案例1:
test
在這種情況下,我沒有指定的test
(像test : true
),但我的Ruby解析代碼不拋出一個錯誤值。我認爲這是一個無效的YAML語法。
案例2:
:test : true
在這種情況下,Ruby代碼把test
爲標誌,而不是一個字符串,當我做puts obj[:test]
,它返回的結果爲「真」。這是一個Ruby的東西?其他語言會將其解釋爲字符串":test"
?
案例3:
:test : true
:test : false
在這種情況下,不是拋出了一個錯誤的:test
重新定義的,我的Ruby代碼花費:test
的最新值(這是false
)。爲什麼是這樣? YAML語法是否允許重新定義元素,並且在這種情況下只採用最新值?
您將從閱讀http://www.yaml.org/YAML_for_ruby.html中獲益。另外,我們需要看到一個更好的YAML例子,它正在被解析。 –