- PR -

文字列をequalsで判定する時

投稿者投稿内容
未記入
大ベテラン
会議室デビュー日: 2008/02/07
投稿数: 115
投稿日時: 2008-02-13 12:50
引用:

そう言われると終われないなぁ


いや、まったく強く主張する気はないので気にしないで。自分の主観を押し付けるほど馬鹿じゃないよ。

引用:

それって、どこから来た考えなのですか?


いや、なんとなく。自分はそういう文化というか環境の中で育った気がするだけ。あなたの大好きな権威とか持ち出せなくて申し訳ない。

このスレの最初のあたりの返答でも、同じような感覚を持っている人が多いのかなと感じて安心していました。途中から規約の統一だとか文章として読んだときになんて話がでてきたので、不安になった。そういう人達がいる以上、"test".equals(str) が null を許容するという思い込みは危険だなあって。

それだけ。今後は、気が向いたら "test".equals(str) の横に //nullでもいいよ。とコメント書いておきます。

引用:

A派に統一するなどという考えは、今まで持ったことがないということですか?


そんな考えを持ったことはない。書き分けてあるほうが私は読みやすいと思っているから。
Desmo
会議室デビュー日: 2003/05/23
投稿数: 8
投稿日時: 2008-02-13 13:00
個人的には、どっちでもいいと思っていますが、

NULLを許容しない場合は、
・事前にnullチェックをし、
・「str.equals("test")」でも「"test".equals(str)」でもよい
(前者で書く場合のほうが多いかも)

NULLを許容する場合は
"test".equals(str)
で書きます。

NULLを許容する場合に、
if(str == null || str.equals("test"))
{
}
と書くのは冗長だと思います
あぶぽん
大ベテラン
会議室デビュー日: 2005/10/20
投稿数: 205
投稿日時: 2008-02-13 13:14
うぉー、終われねぇー

引用:

NULLを許容する場合に、
if(str == null || str.equals("test"))
{
}
と書くのは冗長だと思います



NULLを許容するってそういう意味なのですか?

僕はこういうつもりで言ってました。

 NULLを許容しない:NULLであるときはバグである(もしくはエラー処理する)
 NULLを許容する:NULLであるときは偽(または真)とする
Desmo
会議室デビュー日: 2003/05/23
投稿数: 8
投稿日時: 2008-02-13 13:19
引用:

NULLを許容する場合は
"test".equals(str)
で書きます。

NULLを許容する場合に、
if(str == null || str.equals("test"))
{
}
と書くのは冗長だと思います



書き間違えてました。
言いたかったのは

NULLを許容する場合に("test"のときにだけ処理をしたい)、
if(str != null && str.equals("test"))
{
}
と書くのは冗長だと思います
です。
あぶぽん
大ベテラン
会議室デビュー日: 2005/10/20
投稿数: 205
投稿日時: 2008-02-13 13:32
とりあえず、

 AB派:使い分ける

ということで。。。

# O派みたいなのも出てくるかな

押し付けるわけではないけど、
そういう意見を持っているという意味の派閥です。

ケント・ベック氏はアジャイルプロセスの権威ですが、

権威 - Wikipedia
自発的に同意・服従を促すような能力や関係のこと。
威嚇や武力によって強制的に同意・服従させる能力・関係である権力とは区別される。
代名詞的に、特定の分野などに精通して専門的な知識を有する人などをこう称すること
もある。

B派です。

スリーアミーゴのブーチ氏、ヤコブソン氏、ランボー氏、
ギャング・オブ・フォーのエリック・ガンマ氏他、
リファクタリングのマーティン・ファウラー氏
など他多数、

僕は権威が大好きですが、ものまねするようなことはしません。
自分の頭でちゃんと考えて答えていますからご心配なく。


あぶぽん
大ベテラン
会議室デビュー日: 2005/10/20
投稿数: 205
投稿日時: 2008-02-13 13:42
引用:

Desmoさんの書き込み (2008-02-13 13:19) より:
NULLを許容する場合に("test"のときにだけ処理をしたい)、
if(str != null && str.equals("test"))
{
}
と書くのは冗長だと思います



冗長になってしまうというのは短所ではなく、

上例の場合:
 「NULLは許容するけれどNULLのときは処理しない」

ということを明確にするため、あえて、冗長に書くのです。

A派の長所です。

「気が向いたら "test".equals(str) の横に //nullでもいいよ。とコメント書いておきます。 」(未記入さん)

というより、確かであるし、コメントとコードの食い違いが発生しないし、
結局、タイプ量も減ります。

Error401
常連さん
会議室デビュー日: 2007/03/12
投稿数: 39
投稿日時: 2008-02-13 15:24
ケント・ベック氏は、この件に関して、どこでどのような発言をしているのでしょうか?
気になります。(過去のメッセージを読み飛ばしていたとしたらすみません)
あぶぽん
大ベテラン
会議室デビュー日: 2005/10/20
投稿数: 205
投稿日時: 2008-02-13 15:56
引用:

Error401さんの書き込み (2008-02-13 15:24) より:
ケント・ベック氏は、この件に関して、どこでどのような発言をしているのでしょうか?
気になります。(過去のメッセージを読み飛ばしていたとしたらすみません)



それは僕も気になるところなのです。

『XPエクストリーム・プログラミング入門―ソフトウェア開発の究極の手法』

のころからおっしゃっていたのかどうか記憶にないですが、
最近の書籍では流行のようです。

僕の場合は、

そのことを、あるプロジェクトのリーダーから聞きました。

そのプロジェクトの規約に必ずB派にするように書かれていたので、
聞いてみると、いろいろ理由は言うのですが、

どこに書いてあったのかは言わないんです。

最近では、よく見かけるようになったので、そんなものかなぁと思っていました。

たまたま、そのリーダーが、ケント・ベックの熱烈なファンだったので、
皮肉で、「たとえ、ケント・ベック氏がそうしろと言ったとしても」と発言しました。

だから、nagiseさんも同じケント・ベック教(アジャイル教?、XP教?)なのかと、
思っていましたが、

そうでもないようなので、
B派の考えが、どこから、発生してきたのか全く不明です。

ちなみにA派の考えは。。。K&Rとかストラウストラップ氏のC++言語とか、
というより、ずっと昔からそうでした。。。と思います。

少なくとも10年前にこの話題は有り得なかったんじゃないでしょうか?
僕は聞いたことがありません。

スキルアップ/キャリアアップ(JOB@IT)