アカウント名:
パスワード:
きっかけはこのおもしろい(オブラートに包んだ表現)ツイートではないかな
https://twitter.com/fnya/status/1192036095820615680 [twitter.com]
(条件式 ? true : false ) ? true ? true : false : false ? true : falseて書けばさらに3倍くらい可読性が上がるのでは?
殺意しか上がりません……!
なんかすごい煽られてる気がする。
true? trueなの? false? false? ねえtrueなのfalseなのどっち?
みたいな。
殺意なら(条件式 ? true : false ) ? true ? true : false : false ? false : trueにすればもう3倍くらい上がると思います。
そこまで行くと、逆になんか、こう……引いちゃう?
普通は、三項演算子を入れ子で使うの禁止というコーディングルールがあると思いますが。
私は、入れ子にしない限りは可読性は悪くなく、コンパイルで最適化されるので速度も落ちないので、(条件式) ? true : false は良いと思います。
三項演算子の三項目に別の三項演算子を突っ込むのはそれほど見づらくないのでよく書くな。return 第1条件 ? a : 第2条件 ? b : 第3条件 ? c : d;みたいな?
switch caseに二項演算子が使える言語だとそっちで書くことも考えるけど、caseの間に代入とかreturnとかが並んでるのはスマートじゃないと思ったり。
入れ子禁止ルールは見たことないけど、そういう職場のあるのね。
> 入れ子禁止ルールは見たことないけど、そういう職場のあるのね。
技術レベルが低い人間が集ってるところで、なんとかプロジェクトを運用しようとするとレベル低いところまでルールを用意しないといけなくなるんです。
条件式の成否に関わらずtrueしか返さない?
な訳なかった。上のコメントは無視してください
えっどゆこと?https://wandbox.org/permlink/zqo9vXRsrbNaBB3j [wandbox.org]
賛成の反対の賛成の賛成の反対の反対の賛成の反対なぁ~のだぁ~
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
UNIXはシンプルである。必要なのはそのシンプルさを理解する素質だけである -- Dennis Ritchie
発端? (スコア:3, 参考になる)
きっかけはこのおもしろい(オブラートに包んだ表現)ツイートではないかな
https://twitter.com/fnya/status/1192036095820615680 [twitter.com]
Re:発端? (スコア:5, おもしろおかしい)
>
>(条件式) ? true : false
>
>って書くよね?
>
>レビューで条件式だけで動作するとしつこく詰め寄られたけど、可読性が落ちると突っぱねた。
その理屈が成り立つなら
(条件式 ? true : false ) ? true ? true : false : false ? true : false
て書けばさらに3倍くらい可読性が上がるのでは?
Re:発端? (スコア:1)
(条件式 ? true : false ) ? true ? true : false : false ? true : false
て書けばさらに3倍くらい可読性が上がるのでは?
殺意しか上がりません……!
Re:発端? (スコア:1)
なんかすごい煽られてる気がする。
true? trueなの? false? false? ねえtrueなのfalseなのどっち?
みたいな。
Re: (スコア:0)
殺意なら
(条件式 ? true : false ) ? true ? true : false : false ? false : true
にすればもう3倍くらい上がると思います。
Re:発端? (スコア:1)
そこまで行くと、逆になんか、こう……引いちゃう?
Re: (スコア:0)
true
じゃない?
たぶん言いたいのは、
(条件式 ? false : true ) ? true ? false : true : false ? false : true
かと思う。
Re:発端? (スコア:1)
普通は、三項演算子を入れ子で使うの禁止というコーディングルールがあると思いますが。
私は、入れ子にしない限りは可読性は悪くなく、コンパイルで最適化されるので速度も落ちないので、(条件式) ? true : false は良いと思います。
Re:発端? (スコア:1)
三項演算子の三項目に別の三項演算子を突っ込むのはそれほど見づらくないのでよく書くな。
return 第1条件 ? a :
第2条件 ? b :
第3条件 ? c : d;
みたいな?
switch caseに二項演算子が使える言語だとそっちで書くことも考えるけど、caseの間に代入とかreturnとかが並んでるのはスマートじゃないと思ったり。
入れ子禁止ルールは見たことないけど、そういう職場のあるのね。
Re: (スコア:0)
> 入れ子禁止ルールは見たことないけど、そういう職場のあるのね。
技術レベルが低い人間が集ってるところで、なんとかプロジェクトを運用しようとするとレベル低いところまでルールを用意しないといけなくなるんです。
Re: (スコア:0)
条件式の成否に関わらずtrueしか返さない?
Re: (スコア:0)
な訳なかった。上のコメントは無視してください
Re: (スコア:0)
えっどゆこと?
https://wandbox.org/permlink/zqo9vXRsrbNaBB3j [wandbox.org]
Re: (スコア:0)
賛成の反対の賛成の賛成の反対の反対の賛成の反対なぁ~のだぁ~