YAML:ssa on kolmen tyyppisiä tietotyyppejä:
- Skalaari
- Lista
- Sanakirja
Skalaaritietotyyppi:
Skalaari on yksinkertainen tietotyyppi. YAML:ssä skalaari tarkoittaa yksinkertaista arvoa avaimelle. Skalaarin arvo voi olla kokonaisluku, float, Boolen arvo ja merkkijono. Skalaaritietotyypit luokitellaan kahteen tietotyyppiin:
- Numeerinen tietotyyppi
- merkkijono
Numeerinen tietotyyppi
Numeerisia tietotyyppejä on kolmenlaisia:
- Kokonaisluku
- Liukulukuluvut
- Booleans
An Kokonaislukutietotyyppi voi olla desimaali, oktaali tai heksadesimaali.
Esimerkiksi:
--- age: 12345 octalexample: 012345 hexaexample: 0x12d4
Tässä heksadesimaaliarvo ilmaistaan 0x:lla ja oktaaliarvo on merkitty etunollalla. Kun suoritamme tämän asiakirjan python-skriptillämme, seuraava tulos luodaan:
age: 12345 octalexample: 9946 hexaexample: 4820
The liukulukuarvo voi olla kiinteä ja eksponentiaalinen.
Esimerkiksi:
--- height: 180.0 exp: 12.3015e+05
Kun arvioimme yllä olevaa kokonaisuutta, saamme seuraavat:
verkko ja verkkotyypit
height: 180.0 exp: 1230150.0
A Boolen arvo voi olla True/False tai Yes/No tai On/Off.
Esimerkiksi:
--- boolenval1: True booleanval2: False fan: On light: Off
merkkijono
YAML-merkkijonot ovat Unicode-koodia. Seuraavassa esimerkissä aiomme määrittää yksinkertaisen merkkijonon ilman lainausmerkkejä.
Esimerkki:
lihavoitu teksti css:ssä
--- str1: this is a normal string
Kun käsittelemme tämän, luodaan seuraava tulos:
str1: this is a normal string
Nyt määritämme merkkijonon, jossa on pakomerkkijono. Seuraava merkkijono sisältää erikoismerkin (mitä tahansa muuta kuin aakkosnumeerista), joten se sisältää lainausmerkkejä.
--- str1: 'the cost is 390 ' str2: the cost is 390
Kun käsittelemme tämän, luodaan seuraava tulos:
str1: the cost is 390 str2: the cost is 390
YAML-tiedoston aikana voimme asettaa datamuuttujan arvon nollaksi. Myöhemmin voimme kirjoittaa ohjelman, joka muuttaa nollan arvon mihin tahansa muuhun arvoon.
--- str1: null str2: ~
Ohjelmamme käsittelee tämän seuraavasti:
str1: none str2: none
YAML:ssä voimme kirjoittaa monirivisen merkkijonon yhdelle riville käyttämällä symbolia >. Tässä rivinvaihtomerkki( ) ohitetaan.
Esimerkki:
str: > this is a multi-line string it spans more than one line
Yllä oleva merkkijono tulkitsee ilman uusia rivejä seuraavasti:
str : this is a multi-line string it spans more than one line
YAML:ssä voimme kirjoittaa monirivisen merkkijonon rivinvaihdossa käyttämällä | symboli. Tässä rivinvaihtomerkki ( ) sisällytetään.
Esimerkki:
str: | this is a multi-line string it spans more than one line
Joten näemme uudet rivit missä ne ovat asiakirjassa seuraavasti:
str : this is a multi-line string it spans more than one line
Luettelot
Voimme määrittää luettelon yhdellä rivillä seuraavasti:
--- items: [6, 7, 8, 9, 10] name: [six, seven, eight, nine, ten]
Tämä tyyli tunnetaan lohkotyylinä. Voimme laittaa yllä olevan luettelon useille riveille seuraavasti:
--- items: - 6 - 7 - 8 name: - 'six' - 'seven' - 'eight' - 'nine'
Tämä tyyli tunnetaan virtaustyylinä. Monimutkaisia objekteja sisältävä luettelo vaatii useita rivejä.
--- items: - values: value1: value 2: value 3: - other values: key: value
Mikä tahansa määrä kelvollisia YAML-arvoja voi sisältää taulukon. Mutta luettelon arvo ei voi olla samaa tyyppiä.
Sanakirjat
Jos haluamme kirjoittaa monimutkaisen YAML-tiedoston, joka sisältää monimutkaisen tietorakenteen, käytämme sanakirjoja. Se on kokoelma avain: arvo -pareja ja jokainen avain: arvo -pareja voidaan upottaa sisäkkäin monilla vaihtoehdoilla.
Esimerkki 1:
--- student1: 'john' hobbies: - music - reading - dancing
Yllä olevassa esimerkissä opiskelija on ensimmäinen avain ja john on arvo. Harrastukset ovat toinen avain, mutta se on sisäkkäinen, mikä tarkoittaa, että se sisältää luettelon arvoista. Avaimen arvo voi olla jälleen avain: arvo -pari, jonka näemme seuraavassa esimerkissä.
Esimerkki 2:
student2: fatherName: 'William' motherName: 'Marry' subjectDetails: subject1: 70 subject2: 100
SubjectDetails näyttää avaimen, ja tämän avaimen arvo on luettelo avain: arvo -pareista. isänNimi, äitiNimi ja subjektinNimi ovat avaimet. Avain SubjectName sisältää luettelon avaimista: arvoparit sekä aihe1 ja aihe2 ovat avaimia arvoille 70 ja 100.
ämpärilajittelu