コーディングスタイル。

基本的に自分のコーディングスタイル(というか空白や改行の入れ方)は言語によらず、K&Rがベースなんだけど、関数の{}についてはなぜか


void func() {
}
なのだった。サンプルコードを自分のソースに取り込んだ時も、暇があれば↑に直しちゃうので、なぜ

void func()
{
}
が良いのかが正直、分からない。じゃあなぜ前者が良いのかと問われても、10年以上そのスタイルだとそうじゃないと気持ち悪いから、程度の理由しかないのだけど。あ。いや、たぶん、

if (hoge) {
} else {
}
って書くときのカッコの位置に合わせたい、という意識はあると思う。結局、慣れと好みの問題かと思うけど、そうじゃないのだろうか...?
あと、

if(hoge == 1)
これはダメ。絶対
if(1 == hoge)
こう。
これは確かに昔、代入と比較でミスった記憶があるけど、もうずいぶんこのミスはやらかしてないので*1、個人的には前者で良いかな〜、っという気もする*2。でも、フェイルセーフとゆ〜観点だと後者のが良いのは分かるな。
最後の、

if("".equals(hoge))
は、実践してます。便利。教えてもらったのは、当のid:sasayuki氏だった気もするけど。
Javaのコーディングにおいて、何がイヤかと言えば、NullPointerExceptionを避けようとすると、どうしてもifのブロックが深くなっちゃう点。それが一段浅くできるだけでも、十分ウレシイ。
まあ、C(C++)の場合、NullPointerExceptionどころかアプリが落ちる可能性があるし、NullPointerExceptionもありがたいのだけど、Perlに慣れるとNullPointerExceptionチェックのためにロジックが読みにくくなってる気がして。*3
あと、細かい点では、ワシの場合、ifとカッコの間のスペースは必須*4なんだけどネ。:-)

*1:気付いてないだけという可能性もあるが。

*2:慣れと好みの問題で。詳しく言えば、原則としてif文中に代入は書かないし、==で比較するときも、一度深呼吸して(笑)=でないことを確認するスタイル。

*3:C(C++)の場合、ロジックの読みやすさは諦めてるからもういいです。あれはやっぱり高級アセンブラだから。

*4:理由を強いて挙げれば関数呼び出しと区別しやすいから。