请用适当的例子解释YAML中不同类型的上下文

请用适当的例子解释YAML中不同类型的上下文,yaml,Yaml,YAML包含六种不同类型的上下文。 阻塞输入,阻塞输出,流入,流出,阻塞键,流动键。 我得到了块关键点和流关键点之间的差异,但我无法 区分其他四种语境 我在YAML规范中看到了很多示例及其定义,但我无法正确区分它们。 因此,请用一些例子说明它们之间的区别,并解释一个上下文何时转换为另一个上下文。您可以在下面找到六种不同上下文的简短描述 阻挡 块序列的每个值都在上下文中的块中 此外,顶级节点也在上下文中的块中,尽管您只能从产品207而不是从上下文的简短描述中派生 封锁 块映射的值位于块输出上下文中

YAML包含六种不同类型的上下文。 阻塞输入,阻塞输出,流入,流出,阻塞键,流动键。 我得到了块关键点和流关键点之间的差异,但我无法 区分其他四种语境

我在YAML规范中看到了很多示例及其定义,但我无法正确区分它们。
因此,请用一些例子说明它们之间的区别,并解释一个上下文何时转换为另一个上下文。

您可以在下面找到六种不同上下文的简短描述

阻挡 块序列的每个值都在上下文中的块中

此外,顶级节点也在上下文中的块中,尽管您只能从产品207而不是从上下文的简短描述中派生

封锁 块映射的值位于块输出上下文中。这对于缩进很重要,所以这就是为什么您可以对这样的序列“零缩进”(或者为什么用破折号“计数”作为缩进)

以下是定义这种差异的产品:

块键 块映射中的键位于块键上下文中

流动键 流映射中的键位于流键上下文中

流入 流集合中的值在上下文中的流中

流出 流集合外部的值位于流出上下文中


似乎上下文可以重叠,我同意规范中没有很好地解释。只有在解释每个产品时,细节才有意义

我想这也取决于你需要这个做什么。如果您正在实现一个解析器,那么当您理解并实现单个产品时,它可能会更有意义

请确保在实现解析器时使用,并加入我们在#yaml-dev中的freenode IRC

---
- foo
---
key:
- foo
[201]   seq-spaces(n,c) ::= c = block-out ⇒ n-1
                            c = block-in  ⇒ n
---
foo: bar
---
{ foo: bar }
---
{ key: foo }
---
[ foo ]
---
- foo