アカウント名:
パスワード:
きっかけはこのおもしろい(オブラートに包んだ表現)ツイートではないかな
https://twitter.com/fnya/status/1192036095820615680 [twitter.com]
C言語で条件の部分が数値にしか見えない場合は可読性が多少上がるかもしれない。ブール型の扱いが厳密な言語なら可読性があるように書かないとコンパイルエラーになるから、そういう言語しか使ってなければおかしく見えるかもね。
最近、
(cond) ? (a = 1) : (a = 2);
ってコードを見かけてちょっと頭を抱えた。
if (cond) { a = 1; } else { a = 2; }
か
a = (cond) ? 1 : 2;
か、どっちかにしろ、と。
三項演算子は「代入処理は一つ(代入先は同じ)」であることを明確にできるのが、ifに対するメリットだと思うが、この例だと台無しというか両方の悪いところ取りでもう。一番可読性いいのは、
a
| a = (cond) ? 1 : 2;のほうがみやすいだろ。
C#には?だけでなく??ってのもあってな。https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/oper... [microsoft.com]
null値か否かの分岐なんだが、代入させたいけど極々単純な分岐の場合には1行になったほうが見やすいからいろんな言語で三項目演算子やその類が対応されているのだと思うぞ。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
192.168.0.1は、私が使っている IPアドレスですので勝手に使わないでください --- ある通りすがり
発端? (スコア:3, 参考になる)
きっかけはこのおもしろい(オブラートに包んだ表現)ツイートではないかな
https://twitter.com/fnya/status/1192036095820615680 [twitter.com]
Re: (スコア:1)
C言語で条件の部分が数値にしか見えない場合は可読性が多少上がるかもしれない。
ブール型の扱いが厳密な言語なら可読性があるように書かないとコンパイルエラーになるから、そういう言語しか使ってなければおかしく見えるかもね。
Re: (スコア:0)
最近、
ってコードを見かけてちょっと頭を抱えた。
か
か、どっちかにしろ、と。
三項演算子は「代入処理は一つ(代入先は同じ)」であることを明確にできるのが、ifに対するメリットだと思うが、この例だと台無しというか両方の悪いところ取りでもう。
一番可読性いいのは、
Re:発端? (スコア:0)
| a = (cond) ? 1 : 2;
のほうがみやすいだろ。
C#には?だけでなく??ってのもあってな。
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/oper... [microsoft.com]
null値か否かの分岐なんだが、代入させたいけど極々単純な分岐の場合には1行になったほうが見やすいからいろんな言語で三項目演算子やその類が対応されているのだと思うぞ。