2016-11-16 24 views
1

另一个字符串所以我希望把这个:级联的YAML“锚”与键

a: 
    b: &b "hello" 
    c: *b "world" 

进入这个:{"a"=>{"b"=>"hello", "c"=>"hello world"}}

但现在我得到did not find expected key while parsing a block mapping at line 2 column 3

我知道这工作得很好:

a: 
    b: &b "hello" 
    c: *b 

(我从learnxinyminutes教训,还尝试了一些%() %{} #{} ..语法,但它们都没有工作)

+2

不,那不行。 yaml中没有连接(AFAIK) –

+0

那么还有一种方法可以实现相同的结果吗? – Dorian

+0

你的意思是'.yml.erb'我猜 – Dorian

回答

4

YAML不是一种编程语言,一般不提供做你想做的工具。

但是,如果你真的想这样做,没有什么阻碍了你从定义一些标签!concat和实现它的方式,让你做

a: 
    b: &b "hello" 
    c: !concat [*b, "world"] 

最重要的是:你需要实现这在装载方面你自己。这个想法不是太奇特; !!merge标签有一个(非标准)定义,它与映射here做类似的事情,并且一些YAML实现支持它。但是,由于充分的理由,它并没有进入标准。经验法则:如果你想做这样的事情,YAML可能不适合你。

+0

不错,谢谢你的建设性答案! – Dorian