言語を問わず、プログラミングではマジックナンバーが嫌われる傾向にあります。しかし、マジックナンバーについて誤解しているケースも少なからず見受けられます。典型的なのは、即値=マジックナンバーという誤解です。即値とマジックナンバーは同義ではありませんし、即値が常にマジックナンバーになるわけでもありません。 さすがに true や false のような即値まで全廃しろという人はそういませんが、次のような例になると微妙になってきます。 文字どおり、三角形の面積を求める関数ですが、小学校で習ったように、底辺 × 高さ ÷ 2を計算しています。ここで登場する「2」は明らかに即値ですが、これを何らかのマクロやオブジェクトに置き換えることは無意味なばかりか、かえって可読性を低下させます。三角形の面積の公式では、ここは「2」以外あり得ず、それは小学校を卒業した人なら誰でもわかることです。 一般に、自然科学の