size == 0とempty はどちらを使うべきか?の議論 - Togetterまとめ

読み易さをあまり追求すると宗教になるのは、まぁその通りだと思いますが、私が普段指摘しているのは size() == 0 じゃなくて empty() を使ってくださいね、といった感じの、恐らくあまり反対される方はいらっしゃらないであろう内容が中心です。

記事へジャンプ

みんなの反応

はてなブックマークでの反応
1daruyanagi@hatena 2017/09/14 11:06:52
わいは絶対 empty 使うし、周りにも押し付ける人だわ、きっと
2koyancya@hatena 2017/09/14 11:07:11
緊張感ある
3b-wind@hatena 2017/09/14 11:11:23
プログラムなんてよく分かんないしどっちでもいいけど、一つのプロジェクトの中では統一しようなと言うお気持ち。
4moccos_info@hatena 2017/09/14 11:44:50
sizeで書くような奴即クビくらいの感覚だったので、世界には色々な人がいるという学びが得られた
5netcraft3@hatena 2017/09/14 12:01:58
empty派。
6snowcrush@hatena 2017/09/14 13:10:34
議論とはずれるけど、条件チェックでのゼロ比較は、負の値を返すようなバグや仕様が有った場合無限ループ等の原因になるので、正であることが保証されていない限りやらない派です。なのでbool値が返る方が好ましい
7kknsd@hatena 2017/09/14 13:32:01
より抽象的に書けるんならそう書くべき
8hush_puppy@hatena 2017/09/14 14:32:43
existsみたいな存在する時に真になるようなのを使うわ。ついでに、メソッドにしないときは size > 0 にしたいかな。ポジティブな時に真なら脊髄反射でコードを読める。おおまかな形でパターンマッチングしてるだけかも。
9ktra@hatena 2017/09/14 16:02:35
C++に限らず普遍的な話に思う
10wata_d@hatena 2017/09/14 16:06:42
昔はempty()だと空にされそうで嫌みたいな話があったけど、そっち方面の指摘は少ないのだな
11tanakh@hatena 2017/09/14 17:28:05
不用意に計算量増やしてないならどっちでもいいよっていう気がするし、size==0がわかりづらいか?っていうと別にそんなことはないと思う。それはそうとempty()っていうSTLのネーミングセンスどうなのっていう。
12htbman@hatena 2017/09/14 18:15:58
size==0 は else if に size==1 とか10とか-1とかが入る可能性を感じてしまう。「空である/空でないを分岐したい」という文脈なら素直に empty を使ってほしい
13tazyamah@hatena 2017/09/14 18:20:13
どっちがいいかとかではなくて、小さすぎるコード断片だけしか見ないでどういう書き方が良いかは論じることができないということだよねー
14kzymtn@hatena 2017/09/14 18:50:06
empty 使うなら is_empty じゃないと気持ち悪い。
15mict@hatena 2017/09/14 18:57:30
世の中には色々な人がいるんだなぁ
16rryu@hatena 2017/09/14 20:14:24
「長さが0の時を空とする」みたいな対象の性質の定義的なものが全然関係ないこんなところに書いてあっていいのかとか悩みだすとうかつに「size == 0」とか書けなくなる病にかかる。
17aya_momo@hatena 2017/09/14 20:24:09
size()==0なんて恐ろしくて使えない。
18n-channel@hatena 2017/09/14 20:38:56
統一できていれば、どちらでも良い。
19tsz@hatena 2017/09/14 20:46:11
例が不適切だったばっかりに、本来したかった議論(雑談)ができないの可哀想w
20yug1224@hatena 2017/09/14 23:01:20
0があるのと空なのは違うのでは?空にする関数に見えるから、空かどうかを確認するならisEmpty()でbooleanを返したい。
21nakayuki805@hatena 2017/09/14 23:19:29
なんの言語かも指定されずいきなりsizeとかemptyとか言われても???となる 少なくともjsの話ではないよね…
22siphilia@hatena 2017/09/14 23:33:10
読んでないけど文脈依存だから適切に使い分けろ以外に答えあるのこれ
23kiichi55@hatena 2017/09/15 00:08:39
C#だと、.Any()==falseじゃないかな。
24koogawa@hatena 2017/09/15 00:18:00
どちらでもよい。コーディング規約に従う
25cocoasynn@hatena 2017/09/15 02:17:09
大喜利かと思ったら違った
26vanbraam@hatena 2017/09/15 08:21:35
計算量オーダーに言及しているのが興味深い.さすがC++勢.Ruby勢なら99%がそんな事気にせずに"empty"って答えるだろう;個人的には"size==0"と"empty"は若干semanticsが違う気がするので,適宜使い分けると思う.C++書かないけど
27tyru@hatena 2017/09/15 23:13:15
これに限った話じゃないし今更だけど、この Twitter / togetter で C++ の empty(), size() の違いとか歴史的背景知ってる人じゃないと議論追うの無理だな…
コメント内容の著作権は、投稿者に帰属します。
削除依頼、不適切コメントのご連絡はこちらにお願いいたします。
2017-09-14 04:36:01:1505331361:1506399805
comments powered by Disqus
※メールアドレスは公開されません。
人気の反応