yaml
중첩 된 콘텐츠에 앵커 및 별칭 사용
수색…
YAML 앵커를 행 식별자로 사용하여 "사전 배열"테이블 만들기
---
person_table:
- &person001
fname: homer
lname: simpson
role: dad
age: 33
- &person002
fname: marge
lname: simpson
role: mom
age: 34
- &person003
fname: peter
lname: griffin
role: dad
age: 34
문제
- 개발자는 YAML에서 테이블 구조를 표현하고자하는데, 각 행은 간단한 행 식별자
해결책
- 테이블의 각 행에 앵커 식별자를 할당하여 YAML 앵커를 사용합니다.
- YAML에서 재사용 가능한 "transclusion identifiers"는 앵커 및 별칭이라고 부릅니다.
- YAML에서 재사용 할 수있는 "중계 식별자"는 앰퍼샌드 또는 별표가 앞에 오는 영숫자 토큰으로 구성됩니다
이론적 해석
- YAML 앵커 및 별칭으로 데이터 정규화 증가
- YAML 앵커와 별칭은
DRY시행합니다 (반복하지 마십시오). - 이 예에서 데이터베이스와 가깝게 일치하는 테이블 구조를 설계하고 보존 할 수 있습니다
함정
- YAML 앵커는 별칭으로 참조되기 전에 선언되어야합니다.
- YAML 앵커는 문서 전체에서 고유해야합니다.
- 고유 앵커를 지정하지 않으면
yaml.load()에서 오류가 발생합니다. - 모든 YAML 파서가 앵커와 별칭을 안정적으로 지원하는 것은 아닙니다.
또한보십시오
YAML 별칭을 사용하여 YAML 테이블에서 행 상호 참조
---
person_table:
- &person001
fname: homer
lname: simpson
role: dad
age: 33
- &person002
fname: marge
lname: simpson
role: mom
age: 34
- &person003
fname: peter
lname: griffin
role: dad
age: 34
motto_table:
- &motto001
person: *person001
motto: >
D'oh!! YAML is too complicated!
- &motto002
person: *person002
motto: >
Bart! Listen to your father!
- &motto003
person: *person003
motto: >
Hey! YAML is freakin' sweet!
문제
- 개발자는 하나의 테이블에서 앵커가있는 행을 상호 참조하고 다른 테이블에서 행 별칭을 사용하여 행에 연결하려고합니다.
해결책
- 미리 정의 된 앵커를 다른 테이블과 상호 참조하는 YAML 별칭 사용
- YAML에서 재사용 가능한 "transclusion identifiers"는 앵커 및 별칭이라고 부릅니다.
- YAML에서 재사용 할 수있는 "중계 식별자"는 앰퍼샌드 또는 별표가 앞에 오는 영숫자 토큰으로 구성됩니다
이론적 해석
- YAML 앵커 및 별칭으로 데이터 정규화 증가
- YAML 앵커와 별칭은
DRY시행합니다 (반복하지 마십시오). - 이 예에서 데이터베이스와 가깝게 일치하는 테이블 구조를 설계하고 보존 할 수 있습니다
- 이 예에서 데이터 입력 및 파일 크기를 줄일 수 있습니다
함정
- 이 특정 예제에서
yaml.load()는 중첩 된 사전을 생성합니다.- 이를 "중첩 된 사전 문제"라고합니다.
- person-value 쌍 아래에서, person의 값은 하위 사전이 될 것입니다
- 이는 테이블 구조의 균일 성을 파괴하기 때문에 바람직하지 않을 수 있습니다.
- 별칭을 올바르게 지정하지 않으면 데이터가 누락됩니다.
- (오타가 있으면 상호 참조가 끊어집니다)
- YAML은 참조에 의한 파일 이동을 지원하지 않으므로 모든 별칭과 앵커가 동일한 yaml 파일에 존재해야합니다
- 모든 YAML 파서가 앵커와 별칭을 안정적으로 지원하는 것은 아닙니다.
또한보십시오
YAML 병합 키를 사용하여 다른 YAML 테이블의 행을 상호 참조
---
person_table:
- &person001
fname: homer
lname: simpson
role: dad
age: 33
- &person002
fname: marge
lname: simpson
role: mom
age: 34
- &person003
fname: peter
lname: griffin
role: dad
age: 34
motto_table:
- &motto001
<<: *person001
motto: >
D'oh!! YAML is too complicated!
- &motto002
<<: *person002
motto: >
Bart! Listen to your father!
- &motto003
<<: *person003
motto: >
Hey! YAML is freakin' sweet!
문제
- 개발자는 하나의 테이블에서 앵커가있는 행을 상호 참조하고 다른 테이블에서 행 별칭을 사용하여 행에 연결하려고합니다.
- 개발자는 "중첩 된 사전 문제"를 피하기를 원합니다.
해결책
- YAML 병합 키를 사용하여 YAML 별칭 사용
- YAML에서 재사용 가능한 "transclusion identifiers"는 앵커 및 별칭이라고 부릅니다.
- YAML에서 재사용 할 수있는 "중계 식별자"는 앰퍼샌드 또는 별표가 앞에 오는 영숫자 토큰으로 구성됩니다
이론적 해석
- YAML 앵커 및 별칭으로 데이터 정규화 증가
- YAML 앵커와 별칭은
DRY시행합니다 (반복하지 마십시오). - 이 예에서 데이터베이스와 가깝게 일치하는 테이블 구조를 설계하고 보존 할 수 있습니다
- 이 예에서 데이터 입력 및 파일 크기를 줄일 수 있습니다
함정
- 이 특정 예제에서
yaml.load()는 중첩 된 사전을 생성합니다.- person-value 쌍 아래에서, person의 값은 하위 사전이 될 것입니다
- 이는 테이블 구조의 균일 성을 파괴하기 때문에 바람직하지 않을 수 있습니다.
- 별칭을 올바르게 지정하지 않으면 데이터가 누락됩니다.
- (오타가 있으면 상호 참조가 끊어집니다)
- YAML은 참조에 의한 파일 이동을 지원하지 않으므로 모든 별칭과 앵커가 동일한 yaml 파일에 존재해야합니다
- 모든 YAML 파서가 앵커와 별칭을 안정적으로 지원하는 것은 아닙니다.
또한보십시오
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow