条件式の書き方について

1
秋猫@青い炎のC++er @akineko

まったりしたしアプリづくりやるかー

2010-06-19 17:30:38
秋猫@青い炎のC++er @akineko

isHogeってメソッドから返ってくるのがfalseだった時の条件を書く場合 (! isHoge) と書くのと (false == isHoge) って書くのはどちらがいいのだろうとかふと思ったんだけど、どちらの方がいいのでしょうか?

2010-06-19 17:48:51
ぐるぐる系SQL @bleis

@akineko isNotHogeを用意するというのも、よく使うメソッドならありだと思うよ

2010-06-19 17:50:30
ぐるぐる系SQL @bleis

@akineko その2択なら、!が見にくいので== falseの方が好き。でもこれは好みの問題かなー

2010-06-19 17:51:14
秋猫@青い炎のC++er @akineko

あ、この場合 true だと何も処理しないので else は使いませんお

2010-06-19 17:52:37
ひつぎ @_hitsugi

@akineko 後者の方が読んだときに考えなくていいかもしれないですね

2010-06-19 17:52:51
おさ/スパム関連は質問前に固定ツイ見て @osapon

@akineko わたしは後者ですね。trueの時に処理したいときは(isHoge)って書いちゃうときもありますが、なるべく(isHoge==True)と、比較対象を書くようにしてます。(isHoge)と(!isHoge)を見間違いそうになるのと、条件増えたときに見難そうなので。

2010-06-19 17:54:30
秋猫@青い炎のC++er @akineko

@bleis あーなるほど、今回はライブラリのメソッドなのですが自作の場合はそれが良さそうですね。あと、やっぱ好みですか。僕も ! よりも == でやった方が見やすいと思うのでこっちにしときますw

2010-06-19 17:54:42
秋猫@青い炎のC++er @akineko

@_hitsugi やっぱそうですよね。いつもは ! って書いてたんですけど、これ==で書いた方がわかりやすいよなーと思ったので

2010-06-19 17:55:49
えのきだけ @meji451

@akineko 任せて!うまくやっとくから早く脱ぐんだ!!

2010-06-19 17:56:15
秋猫@青い炎のC++er @akineko

@osapon そうですよね。trueの場合は僕もそのまま==とかせずに書いちゃう時はありますけど、ちゃんと書いた方がわかりやすくていいですよね

2010-06-19 17:56:46
秋猫@青い炎のC++er @akineko

あと、条件式で null == hogehoge と hogehoge == null の2種類の書き方を見かけるのですが、 null とかを先に持っていく意味はなんなのだろう? 普段は後者の hogehoge == null とかって書き方なんだけど前者の方がいいの?

2010-06-19 17:59:10
なちゅ(ねこのすがた) @felid72

@akineko 私個人でプログラミングするのであれば一目で分かりやすい後者を選びますが、実務の場合はその環境でのコーディング規約に合わせますね。

2010-06-19 17:59:16
あんどちん(安藤敏彦) @andochin

@akineko 誤って代入してしまうのを防ぐ意味程度しかわかんない

2010-06-19 17:59:54
きゅぶんず @kyubuns

@akineko 間違えて 変数 = 定数 って書くとエラー吐かないけど、 定数 = 変数 って書いたらエラー吐いてくれるからだったような

2010-06-19 18:00:15
🌸桜花🌸 @rofi

@akineko 定数値への代入はコンパイルエラーとなるから、間違えて=にしてもコンパイル時点で気付くってやつですかね?  結構言われてますが、TLの方々だと、そもそも変数をconstにしとけば問題ないとか・・・

2010-06-19 18:00:59
おさ/スパム関連は質問前に固定ツイ見て @osapon

@akineko 後者だと、typoして hogehoge = null になってしまった時にデバッグでハマルから前者にしよう!みたいなのを見かけますね。わたしは後者で書いちゃいますが。(そしてtypoしてハマル)

2010-06-19 18:02:03
kyo_ago @kyo_ago

@akineko 「定数を先に持って行くと=を一つ書き忘れてもエラーになるから安全(変数が先だと=が一つでもエラーにならない)」って話を聞いたことがあります。個人的には定数があとの方が好きですが

2010-06-19 18:02:09
秋猫@青い炎のC++er @akineko

@felid72 やっぱ後者ですよねー。確かにコーディング規約があるなら合わせるしかないですがw

2010-06-19 18:02:11
葉月 涼🐶🎀💜/🦌 @ryo_haduki

後ろに変数を持っていくのは、誤った代入が発生しないようにと聞いたことあります。それ以前に誤った代入が発生すること自体がバグのようにも感じますがwもっと深いわけもあるのでしょうかね? RT @akineko: null == hogehoge と hogehoge == null

2010-06-19 18:02:22
秋猫@青い炎のC++er @akineko

@andochin あーなるほど、ミスった時に代入しちゃうのを防げるのか

2010-06-19 18:02:28
ぐるぐる系SQL @bleis

@akineko ただJavaの場合hogehoge = nullを条件式に書けないので・・・

2010-06-19 18:03:18
honeplus @honeplus

@akineko hogehoge = null と誤記したときにバグになるのでその対策ですね。最近はIDEが優秀だったり言語的に不可だったりであんまり気にしなくてもよくなってきました。

2010-06-19 18:03:40
Chuki @Chuki

@ryo_haduki (VBでは比較と代入の構文が同じなので、いまだにすげーややこしいことになってる件について^^;)

2010-06-19 18:03:52
秋猫@青い炎のC++er @akineko

. @kyubuns @rofi @aetos382 @osapon @kyo_ago @ryo_haduki なるほど、typoして = になった時の代入を防ぐ為だったんですね。ありがとうございます

2010-06-19 18:04:04