YAML - Girinti ve Ayırma
Girinti ve ayırma, herhangi bir programlama dilini öğrenirken iki ana kavramdır. Bu bölüm, YAML ile ilgili bu iki kavramdan ayrıntılı olarak bahsetmektedir.
YAML'nin girintisi
YAML herhangi bir zorunlu alan içermez. Dahası, tutarlı olmaya gerek yoktur. Geçerli YAML girintisi aşağıda gösterilmiştir -
a:
b:
- c
- d
- e
f:
"ghi"
YAML'de girinti ile çalışırken aşağıdaki kuralları hatırlamalısınız: Akış blokları, çevreleyen mevcut blok seviyesi ile en azından bazı boşluklarla tasarlanmalıdır.
YAML'nin akış içeriği birden çok satıra yayılır. Akış içeriğinin başlangıcı,{ veya [.
Blok liste öğeleri, çevreleyen blok seviyesiyle aynı girintiyi içerir çünkü - girintinin bir parçası olarak kabul edilir.
Amaçlanan Blok Örneği
Örneklerle girintiyi gösteren aşağıdaki kodu inceleyin -
--- !clarkevans.com/^invoice
invoice: 34843
date : 2001-01-23
bill-to: &id001
given : Chris
family : Dumars
address:
lines: |
458 Walkman Dr.
Suite #292
city : Royal Oak
state : MI
postal : 48046
ship-to: *id001
product:
- sku : BL394D
quantity : 4
description : Basketball
price : 450.00
- sku : BL4438H
quantity : 1
description : Super Hoop
price : 2392.00
tax : 251.42
total: 4443.52
comments: >
Late afternoon is best.
Backup contact is Nancy
Billsmer @ 338-4338.
Dizelerin Ayrılması
Dizeler çift tırnaklı dizge kullanılarak ayrılır. Belirli bir dizedeki yeni satır karakterlerinden kaçarsanız, tamamen kaldırılır ve boşluk değerine çevrilir.
Misal
Bu örnekte, dizge veri türü ile bir dizi yapısı olarak listelenen hayvanların listelemesine odaklandık. Her yeni öğe, önek olarak belirtildiği gibi bir tire önekiyle listelenir.
-
- Cat
- Dog
- Goldfish
-
- Python
- Lion
- Tiger
YAML'de dize temsilini açıklamak için başka bir örnek aşağıda belirtilmiştir.
errors:
messages:
already_confirmed: "was already confirmed, please try signing in"
confirmation_period_expired: "needs to be confirmed within %{period}, please request a new one"
expired: "has expired, please request a new one"
not_found: "not found"
not_locked: "was not locked"
not_saved:
one: "1 error prohibited this %{resource} from being saved:"
other: "%{count} errors prohibited this %{resource} from being saved:"
Bu örnek, bir kullanıcının yalnızca anahtar yönden bahsederek ve değerleri buna göre getirerek kullanabileceği hata mesajları kümesine atıfta bulunmaktadır. Bu YAML modeli, YAML'de yeni olan kullanıcı tarafından anlaşılabilen JSON yapısını takip eder.