什么`@`在YAML中意味着什么(导致Psych :: SyntaxError)?

时间:2013-11-28 00:18:04

标签: ruby yaml

@是YAML中的保留符号吗?当我强迫它成为一个字符串时,一切都很好

require 'yaml'
k = "test: @hello"
YAML.load(k)
# => {"test"=>"@hello"}

但是,如果我在没有引用的情况下编写它,它会给我Psych::SyntaxError。这是为什么? @<something>在YAML中有一些特殊含义吗?

require 'yaml'
k = "test: @hello"
YAML.load(k)
# => Psych::SyntaxError: (<unknown>): found character that cannot start any token while scanning for the next token ...

2 个答案:

答案 0 :(得分:0)

是的,这是保留的。见例5.10 http://www.yaml.org/spec/1.2/spec.html

答案 1 :(得分:0)

来自YAML规范,指标字符(link):

  

“@”(#x40,at)和“`”(#x60,重音符号)保留供将来使用。