当我尝试往返于YAML的往返空符号时,它会变成另一种情况:
require "yaml"
YAML.load(:"".to_yaml) # => ":"
在YAML中表达空符号的正确方法是什么? yaml
gem提供以下内容:
:"".to_yaml # => "--- ! ':'\n"
这是对的吗? (如果是这样,这意味着从YAML返回Ruby的过程中出现了问题。如果没有,则表示从Ruby到YAML有问题。)
使用字符串或非空符号往返成功:
YAML.load("".to_yaml) # => ""
YAML.load("a".to_yaml) # => "a"
YAML.load(:a.to_yaml) # => :a
<小时/> 的更新
我刚刚将此报告为Ruby的错误。
答案 0 :(得分:1)
在YAML中表达空符号的一种方法是!ruby/symbol
,在“符号”后面加一个空格。
YAML.load "!ruby/symbol "
# => :""