YAML ima tri vrste podatkovnih tipov:
- Skalar
- Seznam
- Slovar
Skalarni podatkovni tip:
Scalar je preprost podatkovni tip. V YAML skalar pomeni preprosto vrednost za ključ. Vrednost skalarja je lahko celo število, float, Boolean in niz. Skalarni podatkovni tipi so razvrščeni v dva podatkovna tipa:
- Številski tip podatkov
- Vrvica
Številski tip podatkov
Obstajajo tri vrste številskih podatkovnih vrst:
- Celo število
- Številke s plavajočo vejico
- Logične vrednosti
An Celoštevilski podatkovni tip je lahko decimalno, osmiško ali šestnajstiško.
Na primer:
--- age: 12345 octalexample: 012345 hexaexample: 0x12d4
Tu je šestnajstiška vrednost označena z 0x, osmiška vrednost pa z začetno ničlo. Ko zaženemo ta dokument v našem skriptu python, bo ustvarjen naslednji rezultat:
neskončna zanka
age: 12345 octalexample: 9946 hexaexample: 4820
The vrednost s plavajočo vejico je lahko fiksna in eksponentna.
Na primer:
--- height: 180.0 exp: 12.3015e+05
Ko ocenimo zgornjo entiteto, bomo dobili naslednje:
height: 180.0 exp: 1230150.0
A Logična vrednost je lahko True/False ali Yes/Ne ali On/Off.
Na primer:
--- boolenval1: True booleanval2: False fan: On light: Off
Vrvica
Nizi YAML so Unicode. V naslednjem primeru bomo definirali preprost niz brez uporabe narekovajev.
primer:
sistemsko programsko opremo
--- str1: this is a normal string
Ko to obdelamo, bo ustvarjen naslednji rezultat:
str1: this is a normal string
Zdaj bomo definirali niz z ubežnim zaporedjem. Naslednji niz vsebuje poseben znak (kar koli razen alfanumeričnega), zato vsebuje dvojne narekovaje.
--- str1: 'the cost is 390 ' str2: the cost is 390
Ko to obdelamo, bo ustvarjen naslednji rezultat:
str1: the cost is 390 str2: the cost is 390
Med datoteko YAML lahko nastavimo vrednost podatkovne spremenljivke na nič. Kasneje lahko napišemo program za spremembo vrednosti null v katero koli drugo vrednost.
--- str1: null str2: ~
Naš program to obdela kot:
str1: none str2: none
V YAML lahko zapišemo večvrstični niz v eno vrstico s simbolom >. Pri tem bo znak za novo vrstico ( ) prezrt.
primer:
str: > this is a multi-line string it spans more than one line
Zgornji niz bo brez novih vrstic interpretiran takole:
str : this is a multi-line string it spans more than one line
V YAML lahko zapišemo večvrstični niz v novo vrstico z | simbol. V tem bo vključen znak za novo vrstico ( ).
primer:
str: | this is a multi-line string it spans more than one line
Tako vidimo nove vrstice tam, kjer so v dokumentu, kot sledi:
str : this is a multi-line string it spans more than one line
Seznami
Seznam lahko definiramo v eni vrstici na naslednji način:
--- items: [6, 7, 8, 9, 10] name: [six, seven, eight, nine, ten]
Ta slog je znan kot slog blokov. Zgornji seznam lahko postavimo v več vrstic, kot sledi:
--- items: - 6 - 7 - 8 name: - 'six' - 'seven' - 'eight' - 'nine'
Ta slog je znan kot slog pretoka. Seznam, ki vsebuje kompleksne predmete, potrebuje več vrstic.
--- items: - values: value1: value 2: value 3: - other values: key: value
Niz lahko vsebuje poljubno število veljavnih vrednosti YAML. Toda vrednost seznama ne more biti iste vrste.
Slovarji
Če želimo napisati kompleksno datoteko YAML, ki vsebuje kompleksno strukturo podatkov, bomo uporabili slovarje. To je zbirka parov ključ: vrednost in vsakega od parov ključ: vrednost je mogoče ugnezditi z veliko možnostmi.
Primer 1:
--- student1: 'john' hobbies: - music - reading - dancing
V zgornjem primeru je student prvi ključ, john pa vrednost. Hobiji so drugi ključ, vendar je ugnezden, kar pomeni, da vsebuje seznam vrednot. Vrednost ključa je spet lahko par ključ: vrednost, kar bomo videli v naslednjem primeru.
Primer 2:
student2: fatherName: 'William' motherName: 'Marry' subjectDetails: subject1: 70 subject2: 100
SubjectDetails prikazuje ključ, vrednost tega ključa pa je seznam parov ključ: vrednost. očeName, matiName in subjektName so ključi. Kjer ključ subjectName vsebuje seznam parov ključ: vrednost ter subject1 in subject2 sta ključa za vrednosti 70 in 100.
int v niz c++