YAML - Thụt lề và tách

Thụt lề và tách là hai khái niệm chính khi bạn học bất kỳ ngôn ngữ lập trình nào. Chương này nói chi tiết về hai khái niệm liên quan đến YAML.

Thụt lề của YAML

YAML không bao gồm bất kỳ khoảng trống bắt buộc nào. Hơn nữa, không cần phải nhất quán. Thụt lề YAML hợp lệ được hiển thị bên dưới -

a:
   b:
      - c
      -  d
      - e
f:
      "ghi"
  • Bạn nên nhớ các quy tắc sau khi làm việc với thụt lề trong YAML: Các khối dòng phải được thiết kế với ít nhất một số khoảng trắng với mức khối hiện tại xung quanh.

  • Nội dung luồng của YAML trải dài trên nhiều dòng. Phần bắt đầu của nội dung luồng bắt đầu bằng{ hoặc là [.

  • Các mục danh sách khối bao gồm thụt lề giống như cấp độ khối xung quanh vì - được coi là một phần của thụt lề.

Ví dụ về Khối dự định

Quan sát đoạn mã sau cho thấy thụt lề với các ví dụ:

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

Tách các chuỗi

Các chuỗi được phân tách bằng cách sử dụng chuỗi dấu ngoặc kép. Nếu bạn thoát khỏi các ký tự dòng mới trong một chuỗi nhất định, nó sẽ bị loại bỏ hoàn toàn và chuyển thành giá trị khoảng trắng.

Thí dụ

Trong ví dụ này, chúng tôi đã liệt kê tập trung các động vật được liệt kê dưới dạng cấu trúc mảng với kiểu dữ liệu là chuỗi. Mỗi phần tử mới được liệt kê với một tiền tố của gạch nối như được đề cập dưới dạng tiền tố.

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

Một ví dụ khác để giải thích biểu diễn chuỗi trong YAML được đề cập bên dưới.

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

Ví dụ này đề cập đến tập hợp các thông báo lỗi mà người dùng có thể sử dụng chỉ bằng cách đề cập đến khía cạnh chính và tìm nạp các giá trị tương ứng. Mẫu YAML này tuân theo cấu trúc của JSON mà người dùng mới sử dụng YAML có thể hiểu được.