感想とメモ - すぐわかるオブジェクト指向Perlの第四章を読んだ

  1. すぐわかるオブジェクト指向Perlの第一章を読んだ
  2. すぐわかるオブジェクト指向Perlの第二章を読んだ
  3. すぐわかるオブジェクト指向Perlの第三章を読んだ
  4. すぐわかるオブジェクト指向Perlの第四章を読んだ←今ココ
  5. すぐわかるオブジェクト指向Perlの第五章を読んだ

感想

第四章はハッシュ(%)のリファレンスです。前回の第三章でリファレンスの基礎をガッチリと学んでいるので、ハッシュのリファレンスはゆるい感じで説明されています。

メモ

この章で学べること一覧

・ハッシュの復習
・ハッシュ スライス
・delete関数
・ハッシュ リファレンス
・無名ハッシュ
・ハッシュ リファレンスによるハッシュ スライスのアクセス
・2次元ハッシュ
・ちょっと横道:プログラムの勉強に便利な__DATA__
・2次元ハッシュプログラムの解説

普通のハッシュ

%hash = ('a',1,'b',2,'c',3);
print $hash{'a'};

Perlのハッシュは配列と同じように「,」で区切って作ることが出来ます。しかしこれだと感覚的にわかりづらいので次のように書けます。

%hash = (
    'a',   => 1,
    'b',   => 2,
    'c',   => 3,
);
print $hash{'a'};

先程は「,」で区切っていたのを「=>」に変更しました。カンマの代わりに矢印を使っていいことになっています。


ハッシュのリファレンス

%hash = (
    "a", => 1,
    "b", => 2,
    "c", => 3,
);

$refhash = \%hash;
print $$refhash{"a"};
print $refhash->{"a"};

ここでのリファレンスにアクセスする方法は二章の配列に似ています。分からない人は2章をしっかりと学んでいけばいいと思います。


無名ハッシュ

$refhash = {
    "a",    => 1,
    "b",    => 2,
    "c",    => 3,
};

print $$refhash{"a"};
print $refhash->{"a"};

先ほどのハッシュリファレンスと無名ハッシュを比べてみると、無名ハッシュのほうが少しだけコンパクトになっていると思います。データを表現する%hashがなくなり、$refhashとなっています。それにより下の処理がコンパクトにまとまっています。

すぐわかる オブジェクト指向 Perl

すぐわかる オブジェクト指向 Perl