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.