为什么-(3破折号/连字符)在yaml文件?

所以我开始使用YAML文件而不是application.properties文件,因为它更具可读性。我在YAML文件中看到他们以---开始。我谷歌了一下,找到了下面的解释。

YAML使用三个破折号(“——”)将指令与文档分开 内容。如果没有,这也可以用来标记文档的开始

此外,我尝试了一个没有---的示例,并理解它不是强制性的。

我想我对directivedocument的理解不是很清楚。谁能举个简单的例子解释一下?

87988 次浏览

如果你没有在YAML开始时使用指令,那么它们不是强制性的。如果是这样的话,你应该使用它们。

让我们看一看文档

3.2.3.4. 指令

每个文档都可以与一组指令相关联。指令有一个名称和一个可选序列 参数。指令是YAML处理器的指令,和 像所有其他表示细节一样,YAML中没有反映 序列化树或表示图。YAML的这个版本 定义了两个指令,“YAML”和“TAG”。所有其他指令都是

这样的一个例子也可以在指令YAML文档中的 中找到

%YAML 1.2 # Attempt parsing
# with a warning
---
"foo"

正如你已经发现的,三个破折号---用于标记文档的开始,即:

  1. 根据当前规范,标记文档开始指令后,即%YAML%TAG行。例如:

    %YAML 1.2
    %TAG !foo! !foo-types/
    ---
    myKey: myValue
    
  2. To signal the document start when you have multiple yaml documents in the same stream, e.g., a yaml file:

    doc 1
    ---
    doc 2
    

    如果doc2有一些前面的指令,那么我们必须使用三个点...向解析器指示doc1的结束(以及doc2之前的潜在指令的开始)。例如:

    doc 1
    ...
    %TAG !bar! !bar-types/
    ---
    doc 2
    

The spec is good for yaml parser implementers. However, I find this article easier to read from a user perspective.