YAML - การเยื้องและการแยก

การเยื้องและการแยกเป็นแนวคิดหลักสองประการเมื่อคุณเรียนรู้ภาษาโปรแกรมใด ๆ บทนี้พูดถึงแนวคิดทั้งสองที่เกี่ยวข้องกับ YAML โดยละเอียด

เยื้อง YAML

YAML ไม่มีช่องว่างบังคับ นอกจากนี้ไม่จำเป็นต้องสอดคล้องกัน การเยื้อง YAML ที่ถูกต้องแสดงอยู่ด้านล่าง -

a:
   b:
      - c
      -  d
      - e
f:
      "ghi"
  • คุณควรจำกฎต่อไปนี้ในขณะที่ทำงานกับการเยื้องใน YAML: บล็อกโฟลว์ต้องมีช่องว่างอย่างน้อยบางส่วนที่มีระดับบล็อกปัจจุบันอยู่

  • เนื้อหาโฟลว์ของ YAML ครอบคลุมหลายบรรทัด จุดเริ่มต้นของเนื้อหาโฟลว์เริ่มต้นด้วย{ หรือ [.

  • รายการบล็อกมีการเยื้องเช่นเดียวกับระดับบล็อกโดยรอบเนื่องจาก - ถือเป็นส่วนหนึ่งของการเยื้อง

ตัวอย่างของ Intended Block

สังเกตโค้ดต่อไปนี้ที่แสดงการเยื้องพร้อมตัวอย่าง -

--- !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.

การแยกสตริง

สตริงถูกแยกโดยใช้สตริงที่มีเครื่องหมายคำพูดคู่ หากคุณหลีกเลี่ยงอักขระขึ้นบรรทัดใหม่ในสตริงที่กำหนดอักขระนั้นจะถูกลบและแปลเป็นค่าช่องว่างอย่างสมบูรณ์

ตัวอย่าง

ในตัวอย่างนี้เราได้เน้นรายชื่อสัตว์ที่แสดงเป็นโครงสร้างอาร์เรย์พร้อมด้วยประเภทข้อมูลของสตริง องค์ประกอบใหม่ทุกรายการจะแสดงด้วยคำนำหน้าของยัติภังค์ตามที่กล่าวถึงเป็นคำนำหน้า

-
 - Cat
 - Dog
 - Goldfish
-
 - Python
 - Lion
 - Tiger

อีกตัวอย่างหนึ่งในการอธิบายการแสดงสตริงใน YAML มีการกล่าวถึงด้านล่าง

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:"

ตัวอย่างนี้อ้างถึงชุดข้อความแสดงข้อผิดพลาดที่ผู้ใช้สามารถใช้ได้เพียงแค่กล่าวถึงประเด็นสำคัญและดึงค่าตามนั้น YAML รูปแบบนี้เป็นไปตามโครงสร้างของ JSON ซึ่งผู้ใช้ที่เพิ่งเริ่มใช้ YAML สามารถเข้าใจได้