1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
**Некоторые правила написания YAML-файлов**:
- Файл должен начинаться с 3 дефисов — «---», а заканчиваться 3 точками — «…»
- Первый блок (словарь или список) задаёт рабочее количество отступов, которое будет использовано во всём документе.
- После знака «-», обозначающего элемент списка, ставится пробел.
- Все именованные наборы данных и строки должны иметь уникальные названия.
- В качестве отступов используются пробелы, табуляции не допускаются.
- Строки можно не брать в кавычки, за исключением случая, когда прописываются конвейеры команд в Linux.
- Комментарии начинаются с символа # и отделяются от других токенов пробелами.
**Основная часть данных в YAML представлена в форме пар «ключ-значение»**, где ключ представляет имя, а значение — соответствующие данные.
## Синтаксис YAML
В синтаксисе **YAML** _значительным является интервал_. Каждый **отступ с двумя пробелами** представляет новый уровень:
```sh
level1:
level2:
Level3:
```
Каждый новый уровень - _это объект_. В этом примере объект **level1** содержит объект **level2**, который содержит объект **level3**.
### Поддержка мультидокументов
Вы можете объединить несколько YAML-документов в один YAML-файл для облегчения организации файлов и парсинга данных.
Документы разделяются тремя дефисами (—):
```
---
player: playerOne
action: attack (miss)
---
player: playerTwo
action: attack (hit)
---
```
### Поддержка комментариев
YAML позволяет добавлять комментарии после символа #, как в Python:
```
key: #Это однострочный комментарий
- value line 5
#Это
#многострочный комментарий
- value line 13
```
### Легко читаемый синтаксис
В синтаксисе YAML-файлов используется система отступов, как в Python. Необходимо использовать пробелы, а не табуляцию, чтобы избежать путаницы.
Это избавляет от лишних символов, которые есть в JSON и XML (кавычки, скобки, фигурные скобки).
В итоге читаемость файла значительно повышается.
### YAML
```
#YAML
Imaro:
author: Charles R. Saunders
language: English
publication-year: 1981
pages: 224
```
### Явная и неявная типизация
YAML предлагает как автоопределение типов, так и возможность явно указать тип данных. Чтобы использовать конкретный тип, нужно написать `!![тип]` перед значением.
```
# Это значение преобразуется в int:
is-an-int: !!int 14.10
# Превращает любое значение в строку:
is-a-str: !!str 67.43
# Значение должно быть boolean:
is-a-bool: !!bool yes
```
|