アカウント名:
パスワード:
なんか、無駄に長いコードと複雑なコードを同一視してる気がする。
天才型の書く短いコードは”ロジックが凡才に理解できない”ので、短くはあっても解り易くない。逆に長いコードでも、わかりやすいコードもある。また、必要ない処理を繰り返して、意味がわからなく複雑なコードになってるのもある。(大概はバグだったり、バグのもとだったり)これを分けて議論しないと意味ない気がする。
例(実際にみたことある)
A=Bif(A=B){ A=C}else{ A=D}(絶対elseいかないやん。。。A=Cだけでいいやん。。。)
SQL廚ですけど、A = null かB = nullの場合にelseに行くと思われ。null = null はfalseって忘れやすいんですよね(汗
元※ですが
ああっCとかjavaなら行きますね。型もかいてないからそうなるか。もともとは gembaseなんて誰も知らない言語の話で。。。。(variantしかなく、変数は最初””()空文字、)({}は解りやすい様付けてますが、本当はない。)
#2413749への返信もここに直前でAにBを代入してるので、、、0でもelse行かないです。
A=Bif(A=B){
ここでB=0なら以下の文と同等に
A=0if (0){
GEMBASEとやらはよく知らないが、if(0)の評価がfalseじゃないってこと? あるいはif文の中では=が代入ではない?
# まあ知らん言語の仕様知ってもしょうがないからいいや
0=0の比較なんで、If内はtrueにしかなりえません。if(0)の解釈自体まちがってなす
Cだと0==0は1(=真)だけどa=0という代入式の値は0なのよ。
たとえばa=b=0;でa==0,b==0になるのはそういう理屈。
if評価式内の=が代入なのか比較なのかで意味が全然違ってきますから、言語を跨いだ議論は無理そうですね。
Bの値が0ならelse節いくんじゃ?
最近のコンパイラだと、オプティマイザが削ってくれたりしますん?
# 「if (A=B)」が「if (A==B)」のtypoだとして
AやBが別の関数内で別スレッドから書き換えられる可能性があるならそういうコードもあるのでは?mutexでガチガチに固めればそんなケースはなくなりますがHWの応答待ちなんかだとロックかけて待つわけにいかないこともあり…。
# A=Bとif(A==B)が連続してるならさすがに無意味と思いますが
で、そういう変数がvolatileなしに宣言されていて、「最適化すると動かない!」とか騒ぐわけですね。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
日本発のオープンソースソフトウェアは42件 -- ある官僚
長いコード≠複雑なコード,複雑なコード≠無駄に長いコード,短いコード≠簡潔なコード≠解りやすいコード (スコア:0)
なんか、
無駄に長いコードと複雑なコードを同一視してる気がする。
天才型の書く短いコードは”ロジックが凡才に理解できない”ので、短くはあっても解り易くない。
逆に長いコードでも、わかりやすいコードもある。
また、必要ない処理を繰り返して、意味がわからなく複雑なコードになってるのもある。
(大概はバグだったり、バグのもとだったり)
これを分けて議論しないと意味ない気がする。
例(実際にみたことある)
A=B
if(A=B){
A=C
}else{
A=D
}
(絶対elseいかないやん。。。A=Cだけでいいやん。。。)
Re:長いコード≠複雑なコード,複雑なコード≠無駄に長いコード,短いコード≠簡潔なコード≠解りやすい (スコア:2)
SQL廚ですけど、A = null かB = nullの場合にelseに行くと思われ。
null = null はfalseって忘れやすいんですよね(汗
Re: (スコア:0)
元※ですが
ああっ
Cとかjavaなら行きますね。型もかいてないからそうなるか。
もともとは gembaseなんて誰も知らない言語の話で。。。。
(variantしかなく、変数は最初””()空文字、)
({}は解りやすい様付けてますが、本当はない。)
#2413749への返信もここに
直前でAにBを代入してるので、、、0でもelse行かないです。
Re: (スコア:0)
A=B
if(A=B){
ここでB=0なら以下の文と同等に
A=0
if (0){
GEMBASEとやらはよく知らないが、if(0)の評価がfalseじゃないってこと? あるいはif文の中では=が代入ではない?
# まあ知らん言語の仕様知ってもしょうがないからいいや
Re: (スコア:0)
0=0の比較なんで、If内はtrueにしかなりえません。
if(0)の解釈自体まちがってなす
Re: (スコア:0)
Cだと
0==0は1(=真)だけど
a=0という代入式の値は0なのよ。
たとえば
a=b=0;
でa==0,b==0になるのはそういう理屈。
Re: (スコア:0)
if評価式内の=が代入なのか比較なのかで意味が全然違ってきますから、言語を跨いだ議論は無理そうですね。
Re:長いコード≠複雑なコード,複雑なコード≠無駄に長いコード,短いコード≠簡潔なコード≠解りやすい (スコア:1)
Bの値が0ならelse節いくんじゃ?
Re: (スコア:0)
最近のコンパイラだと、オプティマイザが削ってくれたりしますん?
Re: (スコア:0)
# 「if (A=B)」が「if (A==B)」のtypoだとして
AやBが別の関数内で別スレッドから書き換えられる可能性があるならそういうコードもあるのでは?
mutexでガチガチに固めればそんなケースはなくなりますがHWの応答待ちなんかだとロックかけて待つわけにいかないこともあり…。
# A=Bとif(A==B)が連続してるならさすがに無意味と思いますが
Re: (スコア:0)
で、そういう変数がvolatileなしに宣言されていて、
「最適化すると動かない!」
とか騒ぐわけですね。