--- language: yaml filename: learnyaml-nl.yaml contributors: - ["Adam Brenecki", "https://github.com/adambrenecki"] translators: - ["Niels van Velzen", "https://nielsvanvelzen.me"] lang: nl-nl --- YAML is een data serialisatie taal ontworpen om snel te kunnen worden begrepen door mensen. Het is een strikte superset van JSON en bevat nieuwe regels en een stricte manier van inspringen, zoals bij Python. In tegenstelling tot Python kan je alleen geen tab tekens gebruiken. ```yaml # Commentaar in YAML ziet er zo uit ################ # SCALAR TYPES # ################ # Ons hoofd object (Wat in het hele document gebruikt wordt) is een map, # dit staat gelijk aan een dictionary, hash of object in andere talen. sleutel: waarde nog_een_sleutel: Een andere waarde nummer_waarde: 100 wetenschappelijke_waarde: 1e+12 boolean_waarde: true null_waarde: null sleutel met spaties: waarde # Merk op dat strings niet verplicht in quotes moeten, maar dit kan wel. quote_waarde: "Een string in quotes" "Ook sleutels kunnen in quotes": "Dit is bijvoorbeeld handig als je een dubbelepunt wilt gebruiken in je key" # Tekst over meerdere lijnen kan je schrijven als een 'letterlijk blok' (met |) # Of een 'gevouwen blok' (met >) letterlijk_blok: | Dit hele blok met tekst is de waarde van de 'letterlijk_blok' sleutel, met nieuwe lijnen behouden. Het blok blijft door gaan tot het geeindigd wordt door korter te inspringen. Lijnen die groter zijn ingesprongen behouden dit. gevouwen_stijl: > Dit blok met tekst zal de waarde zijn van 'gevouwen_stijl', maar deze keer zullen alle nieuwe lijnen worden vervangen met een spatie. Lege lijnen, zoals hierboven, zullen worden vertaald naar een nieuwe lijn. Meer ingesprongen lijnen zullen hun nieuwe lijnen ook behouden, deze tekst zal over 2 lijnen te zien zijn. #################### # COLLECTION TYPES # #################### # Nesten wordt bereikt met inspringen. geneste_map: sleutel: waarde andere_sleutel: andere waarde andere_geneste_map: hallo: wereld # In een map is een sleutel niet verplicht om een string te gebruiken 0.25: een float als sleutel # Sleutels kunnen ook meerdere lijnen gebruiken met behulp van het vraagteken ? | Dit is een sleutel met meerdere lijnen : en dit is de waarde # YAML staat ook collection types toe in sleutels, maar veel programmeertalen # zullen hierover klagen. # Sequences (gelijk aan lijsten of arrays) zien er zo uit: een_sequence: - Item 1 - Item 2 - 0.5 # sequences kunnen meerdere type waardes bevatten. - Item 4 - sleutel: waarde andere_sleutel: andere waarde - - Dit is een sequence - in een andere sequence # Doordat YAML een superset van JSON is kan je ook JSON-stijl mappen en # sequences maken: json_map: {"sleutel": "waarde"} json_seq: [3, 2, 1, "takeoff"] ####################### # EXTRA YAML FUNCTIES # ####################### # YAML heeft ook een handige functie genaamd 'anchors' (ankers), deze laten je # makkelijk de waarde van ergens anders in je document kopieƫren. Beide sleutels # krijgen dezelfde waarde: geankert_content: &anker_naam Deze string zal verschijnen als waarde voor de twee sleutels andere_anker: *anker_naam # YAML heeft ook tags, deze gebruik je om een expliciet type te verklaren expliciete_string: !!str 0.5 # Sommige parsers gebruiken taal specifieke tags, zoals deze voor Python's # complexe nummer type: python_complex_nummer: !!python/complex 1+2j #################### # EXTRA YAML TYPES # #################### # Strings en nummer zijn niet de enige types die YAML begrijpt. # ISO opgemaakte datum en datumtijd notaties werken ook: datumtijd: 2001-12-15T02:59:43.1Z datumtijd_met_spaties: 2001-12-14 21:59:43.10 -5 datum: 2002-12-14 # De !!binary tag geeft aan dat de string een base64-gecodeerde # binary blob is. gif_bestand: !!binary | R0lGODlhDAAMAIQAAP//9/X17unp5WZmZgAAAOfn515eXvPz7Y6OjuDg4J+fn5 OTk6enp56enmlpaWNjY6Ojo4SEhP/++f/++f/++f/++f/++f/++f/++f/++f/+ +f/++f/++f/++f/++f/++SH+Dk1hZGUgd2l0aCBHSU1QACwAAAAADAAMAAAFLC AgjoEwnuNAFOhpEMTRiggcz4BNJHrv/zCFcLiwMWYNG84BwwEeECcgggoBADs= # YAML heeft ook een set type, dat ziet er zo uit: set: ? item1 ? item2 ? item3 # Zoals in Python zijn sets gewoon mappen met null waardes; # bovenstaand is gelijk aan: set2: item1: null item2: null item3: null ```