ハンガリー記法
変数名とかの付け方だよ
変数名の最初や最後に目印をつけるよ
「yenHensuA」や「numHensuA」みたいな書き方だよ
簡単に書くよ
ハンガリー記法(読:ハンガリーキホウ 英:Hungarian notation)とは
「ハンガリアン記法」のこと。
用語の中身としては
「変数名
(変数の名前)の最初や最後に目印(接頭辞・接尾辞)を付けることで、変数
(プログラミングにおける値を入れておく箱)の意味をつかみやすくして間違いを減らそう!」な表記方法のこと
です。
詳しく書くよ
順番に見ていきましょう。
まずは予備知識として「ハンガリアン記法」について簡単に説明します。
「そんなの説明されなくても知ってるよ!」な人は適当に読み飛ばしてください。
ハンガリアン記法は「変数名の最初や最後に目印(接頭辞・接尾辞)を付けることで、変数の意味をつかみやすくして間違いを減らそう!」な表記方法です。
例えば
yenHensuA
や
numHensuA
のような書き方をします。
以上を踏まえて
ハンガリアン記法の別名
が「ハンガリー記法」です。
どうでもいい豆知識ですが、このやり方を考えた人がハンガリー出身だから「ハンガリー記法」と呼ばれているらしいです。
なかなか大雑把な名付け方ですね。
変数には分かりやすい名前を付けるのが基本です。
ちなみに変数は「プログラミング言語における値を入れておく箱」ね。
それでは、どうすれば分かりやすい名前になるでしょうか?
先人は、いろいろ考えました。
そんな、いろいろ考えて生まれた中のひとつがハンガリー記法です。
ハンガリー記法は「おかしい部分が おかしいって分かると いいよね!」なコンセプトで考えられています。
例えば、そうですね。
お客さまに頼まれて、ピヨ太君が経理プログラムを作ったとしましょう。
お客さまの会社は日本とアメリカで事業を展開しています。
それに伴い、扱うお金は円とドルです。
最初、ピヨ太君は以下のような名前の変数を作りました。
・売上_本店
・売上_支部1
・売上_支部2
・経費_本店
・経費_支部1
・経費_支部2
ところがどっこい、扱うお金は円とドルです。
作っている最中で「あれ?これって円?ドル?為替レートって どれに掛ければいいの?」と混乱してしまいました。
そこでピヨ太君は変数名を以下のように変更しました。
・円_売上_本店
・ドル_売上_支部1
・ドル_売上_支部2
・円_経費_本店
・ドル_経費_支部1
・ドル_経費_支部2
変数名の最初に「円_」「ドル_」の目印を付けたのです。
このように目印を付けておけば、円とドルが区別できます。
「あれ?これって円?ドル?」と迷うことも なくなるでしょう。
このようにしておくと間違いも見つけやすくなります。
例えば、そうですね。
ピヨ太君が以下の処理を書きました。
売上_全体 = 売上_本店 + 売上_支部1 + 売上_支部2
特に おかしいところは なさそうですよね?
それでは、以下の処理は どうでしょう。
円_売上_全体 = 円_売上_本店 + ドル_売上_支部1 + ドル_売上_支部2
ドルと円が混在しています。
きっと、これは間違いでしょう。
ドルの売上に為替レートを掛けて、円に換算する必要がありそうです。
ここで、2つの処理を見比べてください。
売上_全体 = 売上_本店 + 売上_支部1 + 売上_支部2
も
円_売上_全体 = 円_売上_本店 + ドル_売上_支部1 + ドル_売上_支部2
も、やっている処理は同じです。
違いは変数名の付け方だけです。
でも、上は一見正しそうに見える(けど実は間違い)なのに対し、下は明らかに間違っているように見えます。
このような「間違っている部分が間違っているって分かりやすくしよう!」がハンガリー記法のコンセプトです。
もう一例、見てみましょう。
例えば、以下の処理が あったとします。
合計 = 変数1 + 変数2
一見すると、正しく見えますよね?
それでは、今度は どうでしょう。
数字_合計 = 数字_変数1 + 文字_変数2
変数の型を頭にくっつけてみました。
これは明らかに間違った処理ですよね。
数字と文字を足してしまっています。
このような
1.間違いを見つけやすくする目的で
2.変数名の最初や最後に目印を付けることによって
3.変数の中身をより詳しく表現する
書き方がハンガリー記法です。
なお、意味を考えて目印を付ける書き方を「アプリケーションハンガリアン」と言います。
上で例に挙げた「円_」「ドル_」のような付け方がアプリケーションハンガリアンです。
機械的に変数の型を頭に付ける書き方を「システムハンガリアン」と言います。
上で例に挙げた「数字_」「文字_」のような付け方がシステムハンガリアンです。
単に「ハンガリー記法」と言った場合は、システムハンガリアンを指していることが多いと思います。
とはいえ、一応、アプリケーションハンガリアンの存在も覚えておいてあげてください。
一言でまとめるよ
まぁ「ハンガリー記法」って単語が出てきたら「変数名
(変数の名前)の最初や最後に目印をつける表記法なんだな~」と お考えください。
おまけ
■訳してみるよ
「Hungary(ハンガリー)」は国の「ハンガリー」です。
「記法」は日本語ですね。
何となく くっつけると
ハンガリーの記法
となります。






