はじめに
この記事では、YAMLについてまとめていきたいと思います。
大まかな概要をまとめているので、より詳しく知りたい方は参考のURL先がおすすめです。
目次
- YAMLとは?
- 読めるようになってみよう
- 書いてみよう
- まとめ
YAMLとは?
読み方はヤムル、拡張子は.yml(.yaml)
データシリアライズ言語の一種で、YAMLは略称、正式名称は"YAML Ain't Markup Language"。
直訳は「YAMLはマークアップ言語じゃない」
XMLの進化系とか言われがちだけど、マークアップ言語ではない。
そして公式の説明は「すべてのプログラミング言語にとって人間に優しいデータシリアル化標準」
公式いわく、簡単に理解ができると思う。
XMLとかJSONとか一回やったことあると特に分かりやすいかもしれない。
読めるようになってみよう
書くためには、まず読めるようになってみよう。
何も知らない状態でも雰囲気でなんとなくわかる気もする。
<問題①>
fruits:
- apple
- banana
- orange
詳しくは分からなくても、なんとなくわかる気がすると思う。
問題①はフルーツという括りの中にりんご、バナナ、オレンジの三つが格納されている、ということになる。
では次の問題を読んでみよう。
<問題②>
#従業員名簿
employees:
- name: "Tanaka Tarou"
age: 30
- name: "Yamada Hanako"
age: 25
さっきと同じで、従業員という括りの中に、タナカタロウ(30),ヤマダハナコ(25)がいる、となります。
さすが人間に優しいと公式で言っているだけあってめちゃくちゃ読みやすい。
なんとなーーくわかったと思うので、もっと細かくYAMLのデータについてまとめる。
書いてみよう
書くために、先ほどの問題②を例に用いて詳しく書いていく。
ハッシュ(マッピング)
まず、データはキー
と値
があり、:
で区切って、キー: 値で記述されている。
配列が混ざってくるからややこしくなるだけですべてこの形での記述になる。
先ほどの問題だとキーがname
で値が"Tanaka Tarou"
になっている。
【記述の際の注意事項】
:
の後は半角スペースを忘れないこと
配列(シーケンス)
順序付けて保持するデータ型、配列
記述する際には-
を用いる
先ほどの問題の答えを正しく言い直すと、「従業員という配列の中に、タナカタロウ(30),ヤマダハナコ(25)がいる」になる。
先ほどの記述の仕方はブロック型。
横書き1行(フロー型)でも記述できるらしいけど、頻度は低いと思うので今回は省略する。
【記述の際の注意事項】
-
の後は半角スペースを忘れないこと
配列やハッシュのように、他の要素を持つデータ型をコレクションと呼ばれ、それ以外のデータはスカラーと呼ばれる。
コレクション型はどちらもずっとネスト(入れ子構造)することができる。
値(スカラー)
他の要素を持たないのでスカラー。
YAMLは値を自動的に判別してくれる。整数や浮動小数点、真偽地以外は文字列として認識される。
使用頻度の高い、数値と文字列以外の値については省略する。
数値
整数や浮動小数点などの数値はそのまま記述するだけで表現できる。
キーage
の値30
は数値の「30」として表現されている。
文字列
値は"(ダブルクォーテーション)
、もしくは'(シングルクォーテーション)
で囲むことで文字列として強制的に文字列として認識させる。
先ほどの"Tanaka Tarou"
も文字列として認識されている。
コメント
コメントは#
をつけると以降のその行の文字すべてがコメントと認識される。
【記述の際の注意事項】
その行すべてがコメント行と認識されるので気を付けなければならない。
<例>
#従業員名簿 ここはコメント行、こちらは特に問題なし
employees: #従業員 ←こう書いてしまうと、行すべてがコメントとなるので、employeesは無効となる。
- name: "Tanaka Tarou"
age: 30
- name: "Yamada Hanako"
age: 25
まとめ
【記述の際の注意事項】
- ハッシュ
:
の後は半角スペースを忘れないこと - 配列
-
の後は半角スペースを忘れないこと - コメント
その行すべてがコメント行と認識される
〇インデントは揃える
〇YAMLってそんなに難しくない
参考