【发布时间】:2013-02-20 10:00:16
【问题描述】:
我在某种程度上得到了它,但我还没有看到一个没有提出比答案更多的问题的例子。
http://rhnh.net/2011/01/31/yaml-tutorial
# Set.new([1,2]).to_yaml
--- !ruby/object:Set
hash:
1: true
2: true
我知道我们正在声明一个 Set 标记。我不明白后续的哈希映射与它有什么关系。我们是在声明一个模式吗?谁能给我看一个有多个标签声明的例子吗?
我已阅读规范:http://yaml.org/spec/1.2/spec.html#id2761292
%TAG ! tag:clarkevans.com,2002:
这是在声明模式吗?为了成功解析文件,解析器还需要做些什么吗?某种类型的架构文件?
http://www.yaml.org/refcard.html
Tag property: # Usually unspecified.
none : Unspecified tag (automatically resolved by application).
'!' : Non-specific tag (by default, "!!map"/"!!seq"/"!!str").
'!foo' : Primary (by convention, means a local "!foo" tag).
'!!foo' : Secondary (by convention, means "tag:yaml.org,2002:foo").
'!h!foo': Requires "%TAG !h! <prefix>" (and then means "<prefix>foo").
'!<foo>': Verbatim tag (always means "foo").
为什么有一个主要和次要标记是相关的,为什么次要标记引用一个 URI?有了这些解决了什么问题?
我似乎看到了很多“它们是什么”,而没有看到“它们为什么在那里”或“它们的用途”。
【问题讨论】:
-
在你的第一个例子中,
# Set.new([1,2]).to_yaml实际上是一个 comment - 它是一个 ruby 语句,会在它下面输出 YAML。
标签: tags yaml specifications pyyaml