YAML表达式为空符号

时间:2014-05-28 15:05:44

标签: ruby yaml symbols string

当我尝试往返于YAML的往返空符号时,它会变成另一种情况:

require "yaml"
YAML.load(:"".to_yaml) # => ":"
  1. 这是一个错误,还是打算?
  2. 在YAML中表达空符号的正确方法是什么? yaml gem提供以下内容:

    :"".to_yaml # => "--- ! ':'\n"
    

    这是对的吗? (如果是这样,这意味着从YAML返回Ruby的过程中出现了问题。如果没有,则表示从Ruby到YAML有问题。)

  3. 使用字符串或非空符号往返成功:

    YAML.load("".to_yaml)  # => ""
    YAML.load("a".to_yaml) # => "a"
    YAML.load(:a.to_yaml)  # => :a
    

    <小时/> 的更新

    我刚刚将此报告为Ruby的错误。

1 个答案:

答案 0 :(得分:1)

在YAML中表达空符号的一种方法是!ruby/symbol,在“符号”后面加一个空格。

YAML.load "!ruby/symbol "
# => :""