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.