確かにIDEAさん使い始めてから、うっかりボケっとしてて例のようなコード書いて残してしまっても、黄色になってシンプリファイ提案されてると思うので、それ実行したら勝手にreturn isEnabledになおしてくれるから、放ったらかさなくなっただけかもしれない
2021-06-17 00:40:32@koizuka @dif_engine あー、なるほど。そういうケースもあると。 (さすがに遭遇したのは、そういうケースじゃなさげですが)
2021-06-17 00:41:03最終この形に落ち着いたけど、試行錯誤してるときはそれぞれの分岐で別の処理してて、気づかずPR投げたりはよくする twitter.com/kmizu/status/1…
2021-06-17 00:45:33関係ない話題。初学者のみならず、仕事でコード書いてる人でも、 if(isEnabled) { return true; } else { return else; } と書いちゃう人と時々遭遇するのだけど、これはなんでなんだろう。 ↓
2021-06-17 00:13:47言語にもよるけど、この戻り値を受け取る側が bool を期待していて、例えば json や yaml などへの出力を担う場合などにこう書かれていると親切ではあると思う。。。読み間違いと戻りの型が決めやすいし。 twitter.com/kmizu/status/1…
2021-06-17 00:45:33@reasonset あ、言語依存の部分がありますね。想定していたのは、特に、型がある言語で、true/falseの2値しかない言語ですね(JSの場合でも、基本、return isEnabledでいいと思うんですが、true/falseの2値に変換したい事って多いでしょうか?)。
2021-06-17 00:46:35@hyuki 先生!どうなんですか? twitter.com/gakuzzzz/statu…
2021-06-17 00:50:38これ数学ガールの最近の連載でもこう書かれてるんですよね。結城先生の事だから意図的にそちらの方がわかりやすいという判断をされたんだろうなーと思いつつ、なぜその方がわかりやすいと判断されたのかはまだ自分の中で解を見出だせてない twitter.com/kmizu/status/1…
2021-06-17 00:24:44@kmizu 単純に自然言語に近いからだと思います if isEnabled return true ←英語 return isEnabled ←英語っぽくない
2021-06-17 00:51:36指摘を受けて、return else;ってなんじゃらほいと気づいたので、return false;のミスだということを追記しておきます。
2021-06-17 00:51:39@kmizu trueに対するelseだからfalseだろうなとは思ったw elseと描くと残りの値が出る言語処理系、便利そうw
2021-06-17 00:52:42falseのことelseって指が滑っちゃうことあるよね、return elseあるある、と言いたいのか。 isEnabledをreturnすればメソッドの値が返るから不要な分岐だと言いたいのか。 それとも、別の大事な論点に気づかないにわかプログラマーホイホイなのか。。 twitter.com/kmizu/status/1…
2021-06-17 00:54:59@kmizu ほかの方々がおっしゃるとおり日本語の影響を受けているというのが一番もっともらしいと思いますが、条件節に書ける式の集合とbool(ean)型に評価される式の集合が一致しない言語があるということを一応指摘しておきます。 gist.github.com/yuizumi/264703…
2021-06-17 00:55:23@kmizu 稀に条件式にbooleanしか書けない言語がありますが(Nimとか)、 if (isEnabled) が書けるならそれは関係ないですね。 関係するとしたら関数は常に高階関数で、かつ条件式内では常に展開され、かつ関数はクロージャではない場合ですが、そういう言語は存じません
2021-06-17 00:56:20@george_mohi で、主張としては、"isEnabledをreturnすればメソッドの値が返るから不要な分岐だと言いたいのか。" ですね。
2021-06-17 00:56:25@kmizu ちなみに、無駄なif文を書いてしまうのは日本語話者に限らないようで、社内のコードレビューで時々見かけては「このifはいらん、単にreturnしろ。」といつも指摘しています。
2021-06-17 00:56:59関数が何なのかにもよるかも? bool IsPlayable() { return isEnabled; } みたいなときは、変数そのまま返すとちょっと変だから、あえてtrueやfalseに直そうかな?と思うときあるかも
2021-06-17 00:57:23@kmizu あ、素直にそういうことでしたか。 バカ発見器に引っかかってる気になって、何が隠れてるのか考えてましたww
2021-06-17 00:58:53ネストが深くて頻繁に呼ばれる場所のデバッグ目的でbreakpoint設定用に(いちいち停止しないように)あえてこうしておいて、デバッグが終わったあとに『まあ、動いてるからstayで』か、そのまま忘れられちゃった奴かなと。デコーダとか書くときはこういうスタイルで初期コードを書いてることが多い twitter.com/kmizu/status/1…
2021-06-17 00:59:21ところで、余計な補足ですが(し、今までのところ、誤解はされてないと思いますが)、別に馬鹿にするとかそういう意図ではなく、直感的にはreturn isEnabled;が良かろうと思えるけど、冗長なifを付け加える理由は何故、という純粋な疑問です。
2021-06-17 01:00:07