yamlencode 함수

yamlencode 함수

yamlencode 는 YAML 1.2 블록 문법을 사용해서 주어진 값을 문자열로 인코딩해요.

출처: 문서

본문

yamlencode 는 YAML 1.2 블록 문법을 사용해서 주어진 값을 문자열로 인코딩해요.

주의: 이 함수는 현재 실험적(experimental) 이며, 피드백에 따라 향후 Nomad 버전에서 정확한 결과 형식이 바뀔 수 있어요. 결과의 변경이 파괴적일 수 있는 어떤 인자에 대한 값을 구성하기 위해 yamldecode 를 사용하지 마세요. 값의 일관된 문자열 표현을 얻으려면 대신 jsonencode 를 사용해요. 그 결과도 YAML이 JSON의 상위 집합이므로 유효한 YAML이에요.

이 함수는 Nomad 언어 값 들을 YAML 태그로 다음과 같은 방식으로 매핑해요:

Nomad type YAML type
string !!str
number !!float or !!int
bool !!bool
list(...) !!seq
set(...) !!seq
tuple(...) !!seq
map(...) !!map
object(...) !!map
Null value !!null

yamlencode 는 위 모든 타입에 대해 생략(implied) 문법을 사용하므로 명시적 YAML 태그를 생성하지 않아요.

YAML 형식은 Nomad 언어 타입을 완전히 모두 표현할 수 없으므로, yamlencode 결과를 yamldecode 에 통과시켜도 동일한 값이 나오지는 않지만, Nomad 언어의 자동 타입 변환 규칙 덕분에 실제로는 거의 문제가 되지 않아요.

Examples

> yamlencode({"a":"b", "c":"d"})
"a": "b"
"c": "d"

> yamlencode({"foo":[1, 2, 3], "bar": "baz"})
"bar": "baz"
"foo":
- 1
- 2
- 3

> yamlencode({"foo":[1, {"a":"b","c":"d"}, 3], "bar": "baz"})
"bar": "baz"
"foo":
- 1
- "a": "b"
  "c": "d"
- 3

yamlencode 는 매핑이나 시퀀스가 비어 있지 않은 한 항상 YAML의 "블록 스타일(block style)"을 사용해요. 흐름 스타일(flow-style) YAML을 생성하려면 대신 jsonencode 를 사용해요. YAML 흐름 스타일은 JSON 문법의 상위 집합이기 때문이에요.

더 알아보기 (Learn more)

  • jsonencode 는 YAML 대신 JSON을 사용하는 비슷한 연산이에요.
  • yamldecode 는 반대 연산을 수행해요. YAML 문자열을 디코딩 해서 그 값의 표현을 얻어요.