「~が存在しない」のメソッドは、!Is~ or IsNot~ どっち?

といった投げかけから始まる徒然。 足りなければご自由に編集してくだされ。
0
白い高野さん @masaru_b_cl

ゆる募:「~が存在しない」でtrueを返すようなメソッド名

2011-07-13 11:33:12
あえとす @aetos382

Is○○NotExists QT @masaru_b_cl: ゆる募:「~が存在しない」でtrueを返すようなメソッド名

2011-07-13 11:34:18
白い高野さん @masaru_b_cl

@aetos382 なんとなく語順が気になっちゃいます。

2011-07-13 11:38:55
白い高野さん @masaru_b_cl

そのまま書こうと思ったら、IsNonExistentHogeHogeになってしまって、う~ん・・・ QT @masaru_b_cl: ゆる募:「~が存在しない」でtrueを返すようなメソッド名

2011-07-13 11:39:49
あにす @anis774

@masaru_b_cl 存在する じゃ駄目なのかしら?その方が使いやすいような。

2011-07-13 11:40:43
ヒロ @cz75hiro

@masaru_b_cl 質問に沿った答えではないかもしれませんが、「『存在する』でtrueを返す」メソッドに対し、否定演算子を使うことで「『存在しない』でtrueを返す」を実現するのはダメでしょうか?「~しない時にtrue」という命名は得てして混乱のもとになることが多いので

2011-07-13 11:44:07
あにす @anis774

@masaru_b_cl 反対の反対の反対のそのまた反対、みたいな思考でミス誘発しそうですしw 今後外の用途で使われる可能性もあるし、それで返すbool値を反対にしたら呼び出し側の修正漏れとか起こるし…w

2011-07-13 11:44:49
ぐるぐる系SQL @bleis

. @cz75hiro @anis774 否定なしで使うことがないのであれば、何が反対なの?ってのがあると思いますん

2011-07-13 11:46:18
ぐるぐる系SQL @bleis

正直!は視認性悪すぎる。かといって!!!とするか?とか、== falseとするか?というのは・・・ねぇ

2011-07-13 11:46:58
ぐるぐる系SQL @bleis

否定を肯定と同程度によく使う場合はどうすべきか迷う。例えば、文字列が空じゃない、というのを表すのに!IsEmptyとすべきか、IsNotEmptyとすべきか、HasTextとかHasLengthとすべきか。個人的にはIsNotEmptyの方がわかりやすいと思うんです。

2011-07-13 11:49:20
ぐるぐる系SQL @bleis

対称性を持たせる的な考え方で

2011-07-13 11:50:01
あにす @anis774

とかなるともう脳内カオスになる程度に駄目な子ですはい。

2011-07-13 11:51:40
ぐるぐる系SQL @bleis

@anis774 それは「そう書くことができる」から問題だ、ということですか?

2011-07-13 11:51:55
あにす @anis774

@bleis 混乱するよねってネタであって、それ以上の意味はないですw

2011-07-13 11:52:20
ぐるぐる系SQL @bleis

「そう書くことができる」だけでは問題ではないでしょう

2011-07-13 11:55:24
ヒロ @cz75hiro

. @masaru_b_cl @bleis 視認性の問題は確かに…しかし経験上、視認性よりもコードを読んで、「最終的な意味」が想定しやすいコーディングであるほうが良いと考えています。その上で、否定を盛り込んだ命名でも混乱が起こりにくい状況であれば、それはそれでいいんですかね。

2011-07-13 11:58:23
あにす @anis774

If Not (Not hoge.IsNotEmpty Andalso Fuga) Then …

2011-07-13 11:59:03
白い高野さん @masaru_b_cl

~する、~しない、が同程度に使われる可能性があるのなら、Is~、IsNot~の両方を用意した方がいいんじゃないかと思うです。

2011-07-13 12:00:42
でちまるさん(実際かわいい) @decimalbloat

not not isEmpty が isEmpty ではない言語を積極的に使っていこう

2011-07-13 12:02:45
ヒロ @cz75hiro

@masaru_b_cl 同条件で同程度であれば、間違いなく私はIs派です。理由は一貫して混乱しないために!自分がじゃなくて他の人が読んだ時も想定して。

2011-07-13 12:04:03