7
我正在使用YAML爲一個文件寫一個Ruby哈希。爲什麼以空格開頭的字符串轉換爲!! 'with Ruby/YAML
File.open(output_file, "w") {|file| file.puts YAML::dump(final)}
散列包含字符串作爲鍵和浮點值作爲值。
當我的字符串只包含字母它們在文件file這樣輸出:
abc: 1.0
bcd: 1.0
cde: 1.0
當一個字符串,它就會輸出這樣一個空間開始:
! ' ab': 1.0
當我讀到該文件再次返回一切正常,但我想知道爲什麼發生這種情況,這是什麼意思。
我搜索了YAML文檔,它說單個感嘆號用於表示本地數據類型。
爲什麼這會發生在以空格開頭的字符串上?
我想它需要的字符串,引號內確認的空間是字符串的一部分。我還檢查了更多規範,並在部分中找到:「例7.8。單引號隱式鍵」提到:「所有前導和尾隨空白字符都不包含在內容中。」。我不確定,但我認爲它可能需要使用!防止刪除主要的空白空間? – Gilles
引用的前導和尾隨空格在引號前後。可以通過編輯它來顯示'!'是不需要的,並且重新加載yaml,該加載完全相同,而不用'!' –