YAML har tre typer av datatyper:
- Skalär
- Lista
- Lexikon
Skalär datatyp:
Skalär är en enkel datatyp. I YAML betyder skalär ett enkelt värde för en nyckel. Värdet på skalären kan vara heltal, float, booleskt och sträng. Skalära datatyper klassificeras i två datatyper:
- Numerisk datatyp
- Sträng
Numerisk datatyp
Det finns tre typer av numeriska datatyper:
- Heltal
- Flyttal
- booleaner
En Heltalsdatatyp kan vara decimala, oktala eller hexadecimala.
Till exempel:
--- age: 12345 octalexample: 012345 hexaexample: 0x12d4
Här indikeras hex-värdet med 0x, och det oktala värdet indikeras med inledande nolla. När vi kör det här dokumentet på vårt python-skript kommer följande utdata att genereras:
age: 12345 octalexample: 9946 hexaexample: 4820
De flyttalsvärde kan vara fixerade och exponentiella.
Till exempel:
--- height: 180.0 exp: 12.3015e+05
När vi utvärderar ovanstående enhet får vi följande:
dhl betyder vad
height: 180.0 exp: 1230150.0
A booleskt värde kan vara Sant/False eller Ja/Nej eller På/Av.
Till exempel:
--- boolenval1: True booleanval2: False fan: On light: Off
Sträng
YAML-strängar är Unicode. I följande exempel kommer vi att definiera en enkel sträng, utan att använda citattecken.
Exempel:
--- str1: this is a normal string
När vi bearbetar detta kommer följande utdata att genereras:
str1: this is a normal string
Nu kommer vi att definiera en sträng med en flyktsekvens. Följande sträng innehåller ett specialtecken (allt annat än alfanumeriskt), så den innehåller dubbla citattecken.
--- str1: 'the cost is 390 ' str2: the cost is 390
När vi bearbetar detta kommer följande utdata att genereras:
str1: the cost is 390 str2: the cost is 390
Under YAML-filen kan vi ställa in värdet på en datavariabel till null. Senare kan vi skriva ett program för att ändra värdet på null till vilket annat värde som helst.
--- str1: null str2: ~
Vårt program behandlar detta som:
str1: none str2: none
I YAML kan vi skriva en flerradssträng på en enda rad med hjälp av symbolen >. I detta kommer ett nyradstecken ( ) att ignoreras.
Exempel:
str: > this is a multi-line string it spans more than one line
Ovanstående sträng kommer att tolka utan de nya raderna enligt följande:
str : this is a multi-line string it spans more than one line
I YAML kan vi skriva flerradssträng i en nyrad med | symbol. I detta kommer nyradstecknet ( ) att inkluderas.
Exempel:
mediaöverföring
str: | this is a multi-line string it spans more than one line
Så vi ser de nya raderna där de är i dokumentet enligt följande:
str : this is a multi-line string it spans more than one line
Listor
Vi kan definiera listan på en enda rad enligt följande:
--- items: [6, 7, 8, 9, 10] name: [six, seven, eight, nine, ten]
Denna stil är känd som blockstil. Vi kan sätta listan ovan på flera rader enligt följande:
--- items: - 6 - 7 - 8 name: - 'six' - 'seven' - 'eight' - 'nine'
Denna stil är känd som flödesstil. En lista som innehåller komplexa objekt behöver flera rader.
--- items: - values: value1: value 2: value 3: - other values: key: value
Valfritt antal giltiga YAML-värden kan innehålla av en array. Men värdet på en lista kan inte vara av samma typ.
Ordböcker
Om vi vill skriva en komplex YAML-fil som innehåller den komplexa datastrukturen kommer vi att använda ordböcker. Det är en samling nyckel: värdepar och var och en av nyckel: värdeparen kan kapslas med många alternativ.
Exempel 1:
--- student1: 'john' hobbies: - music - reading - dancing
I exemplet ovan är elev den första nyckeln och john är värdet. Hobbyer är den andra nyckeln, men den är kapslad, vilket betyder att den innehåller en lista med värden. Nyckelns värde kan återigen vara ett nyckel: värdepar, vilket vi kommer att se i nästa exempel.
Exempel 2:
student2: fatherName: 'William' motherName: 'Marry' subjectDetails: subject1: 70 subject2: 100
SubjectDetails visar en nyckel, och värdet på denna nyckel är en lista med nyckel: värdepar. fadernamn, modernamn och ämnesnamn är nycklarna. Där ämnesnamnnyckel innehåller en lista med nyckel: värdepar och ämne1 och ämne2 är nycklarna för värdena 70 och 100.