元Webデザイナー兼コーダーの備忘録

ウェブデザインやプログラミング、ブログのカスタマイズなどについてアウトプットしています。

 メニュー

» HTML入門のまとめはこちらです。

YAML入門:アンカーとエイリアス

同じ値が複数回登場する場合に、「アンカー(&)」と「エイリアス(*)」を使います。アンカーは変数のようなもので、値に名前を付けます。値に変更があっても、アンカー部分の値を変更するだけで良くなるので便利です。なお、この記事はドットインストールというプログラミング学習サービスの内容を参考にしています。

作成するファイル

  • parse.rb
  • data.yml:データファイル

ファイルをそれぞれ以下のように作成します。

# parse.rb
require 'yaml'

emails = YAML.load_file('data.yml')

p emails
# data.yml
- tanaka
- tanaka
- sato
- sato
- sato
- sato
- sato

以下のコマンドで出力を確認します。

ruby parse.rb
["tanaka", "tanaka", "sato", "sato", "sato", "sato", "sato"]

アンカーとエイリアス

データファイルをアンカーとエイリアスを使った記法に書き換えます。エイリアスとは、別名のことです。

- &leader tanaka # アンカー
- *leader # エイリアス
- &staff sato
- *staff
- *staff
- *staff
- *staff

以下のコマンドで出力を確認します。

ruby parse.rb
["tanaka", "tanaka", "sato", "sato", "sato", "sato", "sato"]

友人関係を管理したい場合を考える

例えば、以下のようなデータがあったとします。

- name: hoge
  score: 80
- name: fuga
  score: 90
- name: hatena
  score: 100

ここに友人関係を追加すると以下のようになります。

- &hoge
  name: hoge
  score: 80
- &fuga
  name: fuga
  score: 90
  friends:
    - *hoge
- name: hatena
  score: 100
  friends:
    - *hoge
    - *fuga
ruby parse.rb
[{"name"=>"hoge", "score"=>80}, {"name"=>"fuga", "score"=>90, "friends"=>[{"name"=>"hoge", "score"=>80}]}, {"name"=>"hatena", "score"=>100, "friends"=>[{"name"=>"hoge", "score"=>80}, {"name"=>"fuga", "score"=>90, "friends"=>[{"name"=>"hoge", "score"=>80}]}]}]

まとめ

アンカーとエイリアスを使うと値が変更しやすくなりました。また、複雑なデータを簡潔に記述できることが分かりました。

参考サイト

YAML入門のまとめ記事なら... » YAML入門まとめ

» HTML入門のまとめはこちらです。