YAML-インデントと分離

インデントと分離は、プログラミング言語を学習する際の2つの主要な概念です。この章では、YAMLに関連するこれら2つの概念について詳しく説明します。

YAMLのインデント

YAMLには必須スペースは含まれていません。さらに、一貫性がある必要はありません。有効なYAMLインデントを以下に示します-

a:
   b:
      - c
      -  d
      - e
f:
      "ghi"
  • YAMLでインデントを操作するときは、次のルールを覚えておく必要があります。フローブロックは、現在のブロックレベルを囲む少なくともいくつかのスペースで意図されている必要があります。

  • YAMLのフローコンテンツは複数の行にまたがっています。フローコンテンツの始まりは{ または [

  • -はインデントの一部と見なされるため、ブロックリストアイテムには周囲のブロックレベルと同じインデントが含まれます。

意図されたブロックの例

例でインデントを示す次のコードを観察します-

--- !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のパターンは、YAMLを初めて使用するユーザーが理解できるJSONの構造に従います。