[ 通常表示 ]  [ 簡易表示 ]  [ シンプル表示 ]

「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典

ハンガリアン記法

pointこの用語のポイント

point変数名とかの表記方法だよ

point変数名の最初や最後に目印をつけるよ

point「yenHensuA」や「numHensuA」みたいな書き方だよ

スポンサーリンク

簡単に書くよ

ハンガリアン記法とは

変数名の最初や最後に目印(接頭辞・接尾辞)を付けることで、変数の意味を掴みやすくして間違いを減らそう!な表記方法のこと
です。

image piyo

詳しく書くよ

変数名の付け方の話で、たまに出てきます。

例えば

yenHensuA



numHensuA

のように、名前の最初か最後に決まった目印(接頭辞・接尾辞)を付けることで、意味を掴みやすくする表記法が「ハンガリアン記法」です。

どうでもいい豆知識ですが、このやり方を考えた人がハンガリー出身だから「ハンガリアン記法」と呼ばれているらしいです。
なかなか大雑把な名付け方ですな。

変数には分かりやすい名前を付けるのが基本です。
ちなみに変数は「プログラミング言語における値を入れておく箱」ね。

ハンガリアン記法

それでは、どうすれば分かりやすい名前になるか?
先人は、いろいろ考えました。

そんな、いろいろ考えて生まれた中の一つが、ハンガリアン記法です。
ハンガリアン記法は「おかしな部分がおかしいって分かると良いよね!」なコンセプトで考えられています。

例えば、お客さまに頼まれて、ピヨ太君が経理プログラムを作ったとしましょう。
お客さまの会社は、日本とアメリカで事業を展開しています。
つまり、扱うお金は円とドルです。

ピヨ太君は、最初、以下のような名前の変数を作りました。

・売上_本店
・売上_支部1
・売上_支部2
・経費_本店
・経費_支部1
・経費_支部2


ところがどっこい、扱うお金は円とドルです。
作っている最中で「あれ?これって円?ドル?為替レートって、どれに掛ければ良いの?」と混乱してしまいました。

ハンガリアン記法2

そこでピヨ太君は、変数名の付け方を以下のように変更しました。

円_売上_本店
ドル_売上_支部1
ドル_売上_支部2
円_経費_本店
ドル_経費_支部1
ドル_経費_支部2


変数名の最初に「円_」「ドル_」の目印を付けることにしたのです。

このように目印を付けておけば、円とドルが区別できます。
「あれ?これって円?ドル?」と迷うこともなくなるでしょう。

ハンガリアン記法3

また、このようにしておくと、間違いも見つけやすくなります。

例えば、ピヨ太君が以下の処理を書きました。

売上_全体 = 売上_本店 + 売上_支部1 + 売上_支部2

特におかしいところはなさそうですよね?

それでは、以下の処理はどうでしょう。

円_売上_全体 = 円_売上_本店 + ドル_売上_支部1 + ドル_売上_支部2

ドルと円が混在しています。
これはきっと、間違いでしょう。
ドルの売上に為替レートを掛けて、円に換算する必要がありそうです。

ここで、2つの処理を見比べてください。

売上_全体 = 売上_本店 + 売上_支部1 + 売上_支部2



円_売上_全体 = 円_売上_本店 + ドル_売上_支部1 + ドル_売上_支部2

も、やっている処理は同じです。
違いは変数名の付け方だけです。

でも、上は一見正しそうに見える(けど実は間違い)なのに対し、下は明らかに間違っているように見えます。

このように「間違っている部分が間違っているって分かりやすくしよう!」が、ハンガリアン記法のコンセプトです。

ハンガリアン記法4

同じような例を、もう一つ見ておきましょう。

例えば、以下の処理があったとします。

合計 = 変数1 + 変数2

一見すると、正しく見えますよね?

それでは、今度はどうでしょう。

数字_合計 = 数字_変数1 + 文字_変数2

変数の型を頭にくっつけてみました。

これは明らかに間違った処理ですよね。
数字と文字を足してしまっています。

このように

1.間違いを見つけやすくするコンセプトで
2.変数名の最初や最後に目印を付けることによって
3.変数の中身を、より詳しく表現する


書き方がハンガリアン記法です。

なお、意味を考えて目印を付ける書き方を「アプリケーションハンガリアン」と言います。
上で例に挙げた「円_」「ドル_」のような付け方ですね。

ハンガリアン記法5

機械的に変数の型を頭に付ける書き方は「システムハンガリアン」と言います。
上で例に挙げた「数字_」「文字_」のような付け方です。

ハンガリアン記法6

単に「ハンガリアン記法」と言った場合は、システムハンガリアンを指すことが多いです。
一応、アプリケーションハンガリアンの存在も覚えておいてあげてください。

image piyo2

一言でまとめるよ

まぁ「ハンガリアン記法」って単語が出てきたら「変数名の最初や最後に目印をつける表記法なんだな~」と、お考えください。

一番上に戻るよ
スポンサーリンク