変数名の先頭にアンダースコアを付ける時の意味合い
何の本だったか忘れたけど、Java 系の O'Reilly 本で、final
なローカル変数の先頭にアンダースコア「_
」を付けていた。
IDE のようにシンタックスハイライトされない白黒の紙面で final な変数の区別がつけやすくするためなのだろうか。それとも何かそういう慣例があるのだろうか。
ググったらどうやら C 言語周りで private な関数の名前に対して先頭アンスコを付ける習慣があるっぽい。そこから派生したものなのだろうか。よく知らない。
しかしそれにしても、Java における参照型 (プリミティブ型以外のもの) は、final
を付けたところで参照を書き換えられないだけで、中のプロパティを書き換えたりすることはできてしまう (例えば setter を介した値変更とかはできちゃう) わけで。参照を変えるような操作ってそんななさそうだし、final
を付けても気休めな感じがする。
「変数名にアンスコまで付いてるし、なんかいじっちゃいけない感じの変数なのかな?」っていう気付きが与えられるからいいんだろうか。
名前の先頭にアンスコを付ける、この命名規則の起源と元々の使われ方、そのメリットなどが知りたい。