YAML má tři typy datových typů:
- Skalární
- Seznam
- Slovník
Skalární datový typ:
Skalární je jednoduchý datový typ. V YAML znamená skalární jednoduchou hodnotu klíče. Hodnota skaláru může být integer, float, boolean a string. Skalární datové typy se dělí na dva datové typy:
- Číselný Typ dat
- Tětiva
Číselný Typ dat
Existují tři typy číselných datových typů:
- Celé číslo
- Čísla s pohyblivou řádovou čárkou
- Booleans
An Integer datový typ může být desítkové, osmičkové nebo šestnáctkové.
Například:
--- age: 12345 octalexample: 012345 hexaexample: 0x12d4
Zde je hexadecimální hodnota označena 0x a osmičková hodnota je označena úvodní nulou. Když spustíme tento dokument na našem python skriptu, vygeneruje se následující výstup:
řetězec na char
age: 12345 octalexample: 9946 hexaexample: 4820
The hodnota s plovoucí desetinnou čárkou může být fixní a exponenciální.
Například:
--- height: 180.0 exp: 12.3015e+05
Když vyhodnotíme výše uvedenou entitu, dostaneme následující:
height: 180.0 exp: 1230150.0
A Booleovská hodnota může být True/False nebo Yes/No nebo On/Off.
Například:
--- boolenval1: True booleanval2: False fan: On light: Off
Tětiva
Řetězce YAML jsou Unicode. V následujícím příkladu budeme definovat jednoduchý řetězec bez použití uvozovek.
Příklad:
--- str1: this is a normal string
Když to zpracujeme, vygeneruje se následující výstup:
str1: this is a normal string
Nyní definujeme řetězec s escape sekvencí. Následující řetězec obsahuje speciální znak (jakýkoli jiný než alfanumerický), takže obsahuje dvojité uvozovky.
--- str1: 'the cost is 390 ' str2: the cost is 390
Když to zpracujeme, vygeneruje se následující výstup:
str1: the cost is 390 str2: the cost is 390
Během souboru YAML můžeme nastavit hodnotu datové proměnné na hodnotu null. Později můžeme napsat program, který změní hodnotu null na jakoukoli jinou hodnotu.
--- str1: null str2: ~
Náš program to zpracovává takto:
str1: none str2: none
V YAML můžeme napsat víceřádkový řetězec na jeden řádek pomocí symbolu >. V tomto případě bude znak nového řádku ( ) ignorován.
Příklad:
str: > this is a multi-line string it spans more than one line
Výše uvedený řetězec bude interpretován bez nových řádků takto:
str : this is a multi-line string it spans more than one line
V YAML můžeme napsat víceřádkový řetězec do nového řádku pomocí | symbol. V tomto bude zahrnut znak nového řádku ( ).
Příklad:
nový řádek python
str: | this is a multi-line string it spans more than one line
Takže vidíme nové řádky, kde jsou v dokumentu takto:
str : this is a multi-line string it spans more than one line
Seznamy
Seznam můžeme definovat na jednom řádku takto:
--- items: [6, 7, 8, 9, 10] name: [six, seven, eight, nine, ten]
Tento styl je známý jako blokový styl. Výše uvedený seznam můžeme rozdělit na několik řádků takto:
--- items: - 6 - 7 - 8 name: - 'six' - 'seven' - 'eight' - 'nine'
Tento styl je známý jako styl proudění. Seznam, který obsahuje složité objekty, potřebuje více řádků.
--- items: - values: value1: value 2: value 3: - other values: key: value
Pole může obsahovat libovolný počet platných hodnot YAML. Ale hodnota seznamu nemůže být stejného typu.
Slovníky
Pokud chceme napsat komplexní soubor YAML, který obsahuje komplexní datovou strukturu, použijeme slovníky. Jedná se o sbírku párů klíč:hodnota a každý z párů klíč:hodnota lze vnořit s mnoha možnostmi.
Příklad 1:
--- student1: 'john' hobbies: - music - reading - dancing
Ve výše uvedeném příkladu je student prvním klíčem a john je hodnota. Koníčky jsou druhým klíčem, ale je vnořený, což znamená, že obsahuje seznam hodnot. Hodnotou klíče může být opět dvojice klíč:hodnota, kterou uvidíme v dalším příkladu.
Příklad 2:
student2: fatherName: 'William' motherName: 'Marry' subjectDetails: subject1: 70 subject2: 100
SubjectDetails zobrazuje klíč a hodnota tohoto klíče je seznam párů klíč: hodnota. FatherName, motherName a subjectName jsou klíče. Kde klíč subjectName obsahuje seznam klíčů: páry hodnot a předmět1 a předmět2 jsou klíče pro hodnoty 70 a 100.