ハッシュの変数名は、単数形か複数形か




  1. Perl




  2. 読み物


 スカラ変数は単数形、配列変数は、複数形でよいのですが、ハッシュ変数の場合は、変数名を単数形にすべきか、複数形にすべきか、いつも迷います。つけ方の方針について考えてみます。

 スカラ変数はいつも単数形です。

my $name = 'kimoto';

 配列変数はいつも複数形です。

my @names = ('kimoto', 'tanaka');

 ハッシュ変数はどうでしょうか。では最初に本の情報を表す場合。本はひとつです。本の中に、本をあらわす情報が入っています。このような場合は、単数形のほうがよいと感じます。

my %book = {
  id => '00000001',
  title => 'Perl'
}
my $id = $book{id};
my $title = $book{title};

 次に、名前を指定して、父親の名前を取り出す場合を考えてみましょう。これは、同じ種類で、複数の人の情報が入っています。このような場合は、複数形のほうがよいと感じます。

my %fathers = (
  ken => 'taro',
  naoto => 'ichiro'
);
my $father = $fathers{ken};

 つまり、ハッシュの場合は、変数名を単数形にしたほうが自然な場合と、複数形にしたほうが自然な場合があるということです。