为什么字符串以空格转换为:! ‘用Ruby / YAML
发布时间:2020-12-16 19:04:37 所属栏目:百科 来源:网络整理
导读:我正在使用YAML将 Ruby哈希写入文件. File.open(output_file,"w") {|file| file.puts YAML::dump(final)} 哈希包含字符串作为键,浮点数作为值. 当我的字符串只包含字母时,它们会在文件文件中输出: abc: 1.0bcd: 1.0cde: 1.0 当一个字符串以空格开头时,它将
我正在使用YAML将
Ruby哈希写入文件.
File.open(output_file,"w") {|file| file.puts YAML::dump(final)} 哈希包含字符串作为键,浮点数作为值. 当我的字符串只包含字母时,它们会在文件文件中输出: abc: 1.0 bcd: 1.0 cde: 1.0 当一个字符串以空格开头时,它将被输出: ! ' ab': 1.0 当我再次读回文件时,一切都还可以,但我想知道为什么会这样,这是什么意思. 我搜索了YAML文档,它说单个感叹号用于表示本地数据类型. 为什么这会在以空格开头的字符串上发生? 解决方法! is known as the “non-specific tag”.它强制YAML引擎将以下项解码为字符串,散列或数组.它基本上禁止将其解释为不同的类型.我不确定为什么引擎会这样标记它们;似乎不需要它.也许只是过分热心地试图消除歧义?
编辑:无论哪种方式,它都是不必要的语法: YAML.dump({' a'=>0}) => "---n! ' a': 0n" YAML.load("---n! ' a': 0n") # with the bang => {" a"=>0} YAML.load("---n' a': 0n") # without the bang => {" a"=>0} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |