matrixのライブラリ ttp://x0000.net/topic.aspx?id=3711-0 0491デフォルトの名無しさん (ブーイモ MMa9-eRVI)2020/04/05(日) 13:47:36.92ID:h0VsrhLiM C/C++仕様が違うんだよね三項演算子 0492デフォルトの名無しさん (ワッチョイ 234f-bVUD)2020/04/05(日) 14:48:53.25ID:28SxhHQj0 三項演算子は優先順位よりも結合性の方がわからなくなる 0493デフォルトの名無しさん (ワイーワ2 FF93-8H9x)2020/04/05(日) 14:56:50.54ID:P07lI1PFF A ? B : C; A ? B ? D : E : C ? F : G; (A ? B ? D : E : C) ? F : G; A ? B ? D : E : (C ? F : G); 0494◆QZaw55cn4c (ワッチョイ e3aa-5LkK)2020/04/05(日) 15:03:25.55ID:1D4UZmeK0>>492 私は A1 ? B1 : A2 ? B2 : A3 ? B3 : C3 みたいにお気楽に後ろに後ろに結合するのがいいです 0495デフォルトの名無しさん (ワッチョイ e5ca-Otsn)2020/04/05(日) 15:03:37.61ID:bk3bMB+g0 コンパイラにとって複雑というのは、構文木が深くなる、とどのつまり項の多い長い文なんじゃない? 昔のコンピュータはメモリが足りなかったから深い木は扱えなかったってことでしょ。 0496デフォルトの名無しさん (ワイーワ2 FF93-8H9x)2020/04/05(日) 15:58:31.05ID:PRah2HwrF>>494 人間には右につなげる方が見やすいのかも知れないが コンパイラ的にあいまいさが無いのは左(内側?)に入れていく方だと思う
A ? B ? D : E : C ? F : G;
A ? B ? D : E : C ? F : G; 0501デフォルトの名無しさん (ワッチョイ 6db3-ii8Z)2020/04/07(火) 07:15:13.75ID:Aukj6IXD0 A ? . . B ? D : E : . . C ? F : G;
A . . ? B ? D : E . . : C ? F : G; 0502デフォルトの名無しさん (ワッチョイ 6db3-ii8Z)2020/04/07(火) 07:20:31.07ID:Aukj6IXD0>>494の場合は
A1 ? B1 : A2 ? B2 : A3 ? B3 : C3
A1 ? B1 : A2 ? B2 : A3 ? B3 : C3 0503デフォルトの名無しさん (ワッチョイ 230e-bVUD)2020/04/07(火) 07:39:02.54ID:XHj6H39W0 なぜ素直にif文を使わないんだ 0504デフォルトの名無しさん (ワッチョイ 6db3-ii8Z)2020/04/07(火) 08:25:22.73ID:Aukj6IXD0 当然 if や switch caseやテーブルと使い分ける ? : が適した場合に使う 0505デフォルトの名無しさん (ワッチョイ 4bd2-bVUD)2020/04/07(火) 08:57:58.17ID:w7aWdcFI0 某「省略の美学」とか言うのを売りにしてる言語に憧れてるんだろ。 0506デフォルトの名無しさん (ワッチョイ 23ad-Ujw5)2020/04/07(火) 12:46:52.50ID:rrWnJIGn0 この世には括弧というものがあってだな・・・ 0507デフォルトの名無しさん (ワッチョイ 2379-CuPJ)2020/04/07(火) 12:55:18.38ID:PCdj22SH0 三項演算子で処理を書くな ただの代入にわざわざif文を使うな 0508デフォルトの名無しさん (スプッッ Sde1-ii8Z)2020/04/07(火) 17:39:24.91ID:2Qz700Q3d 代入の右辺だけ書いただけ 処理でこんな書き方をするのは特殊な場合(競技とか) 0509デフォルトの名無しさん (ワッチョイ 23ad-Ujw5)2020/04/07(火) 23:16:28.11ID:rrWnJIGn0 Kotlinは思い切って三項演算子なくした代わりにifを式にしちゃったよ。 他の言語からのパクリだとは思うが、val a = if (x == y) b else c のような書き方ができる。 0510◆QZaw55cn4c (ワッチョイ c2aa-zNgl)2020/04/08(水) 00:50:21.46ID:UIymVg5v0>>509 lisp とか haskell とか、関数型全般はそうやりますよね… 0511デフォルトの名無しさん (ワッチョイ ebb3-aNAp)2020/04/08(水) 02:14:53.71ID:VV8vD69L0>>509 その記述 int a = x == y ? b : c; に比べて何かメリットあるの? 0512デフォルトの名無しさん (ワッチョイ 8252-b+QY)2020/04/08(水) 03:26:20.58ID:5a3Kp3Hv0>>511 ダメと言われている三項演算子を使ってません!と言えることかなw
一つあるとしたら、ネストさせたときに if ... else if ... else if ... else とできることか。 式の中に文のような表現が入る気持ち悪さがあるから、三項演算子の方がまだましな気もするが。 0513デフォルトの名無しさん (ワッチョイ ebb3-aNAp)2020/04/08(水) 08:02:03.15ID:VV8vD69L0 ダメといわれている? 初耳