logo

Vrste podatkov YAML

YAML ima tri vrste podatkovnih tipov:

  1. Skalar
  2. Seznam
  3. 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:

  1. Številski tip podatkov
  2. 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++