[yaml] 왜 — yaml 파일에서 (3 개의 대시 / 하이픈)?

그래서 더 읽기 쉬운 YAML대신 파일을 사용하기 시작했습니다 application.properties. 나는 YAML그들이 ---. 나는 봤고 아래 설명을 찾았습니다.

YAML은 세 개의 대시 ( “—“)를 사용하여 지시문과 문서 내용을 구분합니다. 또한 지시문이없는 경우 문서의 시작을 알리는 역할도합니다.

또한 샘플을 사용하지 않고 샘플을 시도해 보았고 ---필수가 아니라는 것을 이해했습니다.

directive및에 대한 명확한 이해가없는 것 같습니다 document. 누구든지 간단한 예를 들어 설명해 주시겠습니까?



답변

이미 알고 있듯이 세 개의 대시 ---문서의 시작알리는 데 사용됩니다 .

  1. 문서의 시작 신호에 지시 한 후 , 즉, %YAML또는 %TAG현재의 사양에 따라 라인. 예를 들면 :

    %YAML 1.2
    %TAG !foo! !foo-types/
    ---
    myKey: myValue
    
  2. 동일한 스트림에 여러 yaml 문서 가있을 때 문서 시작을 알리려면 ( 예 : yaml 파일) :

    doc 1
    ---
    doc 2
    

    만약 doc 2에 몇 가지 선행 지시문이 있다면, 우리는 ...파서에게 doc 1의 끝 (그리고 doc 2 이전의 잠재적 지시문의 시작)을 나타 내기 위해 세 개의 점을 사용해야 합니다. 예를 들면 :

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

사양은 yaml 파서 구현 자에게 좋습니다. 그러나이 기사 는 사용자 관점에서 더 쉽게 읽을 수 있습니다.


답변

YAML지시문으로 시작하지 않는 경우 필수 사항은 아닙니다 . 그럴 경우 사용해야합니다.

문서를 살펴 보겠습니다.

3.2.3.4. 지시어

각 문서는 일련의 지시문과 연관 될 수 있습니다. 지시문에는 이름과 선택적 매개 변수 시퀀스가 ​​있습니다. 지시문은 YAML 프로세서에 대한 지시이며 다른 모든 프리젠 테이션 세부 사항과 마찬가지로 YAML 직렬화 트리 또는 표현 그래프에 반영되지 않습니다. . 이 버전의 YAML은“YAML”과“TAG”라는 두 가지 지시문을 정의합니다. 다른 모든 지시문은 YAML의 향후 버전을 위해 예약되어 있습니다.

이에 대한 한 가지 예는 지시문 에 대한 문서 에서도 찾을 수 있습니다.YAML

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


답변