アカウント名:
パスワード:
Javaはこういうアホな仕様を排除してて良いんだよね。
オブジェクト同士の == が参照が同じかどうか比較というアホな仕様をどうにかしてくれませんかね。
(Cでいう)ぽぽぽポインタの比較だから!あ、あってるから!
普通equls()を使うよな。使うというか作るのだが。オーバーライドセずにそのまま使うと==と同じことになるし。ま、オブジェクトは==を使えないようにして参照先の比較はcheckPointer(obj1,obj2)とかにすればもっとよかったんだろうけど。初心者はStringとStringを==で繋いじゃうんですよねー。=でつなぐ人もいますけど。まぎらわしーよねー。
Javaは演算子オーバーライドできない仕様だったから、そうなっちゃった。C#は最初から演算子オーバーライドできるから、文字列の==は直感的な仕様になってる。
言いたい事は分かりますが、高級言語とアセンブラを行ったり来たりしていると何が直感的な仕様なのか一瞬では判断できなくなります。
Javaで文字列を==で比較しているコードは、internしている文字列の比較で正しいコードなのか、equalsではなくあえて==で比較している常識的ではないが正しいコードなのか、ただのバグなのか、理解するのは難しいC#であれば値としての文字列の比較なので直感的かつ常識的に読み書きできる
高級言語とアセンブラを行ったり来たりしているうちに常識を忘れてしまいましたか?
でも、=のときは、コピーが作られず、参照が代入されるだけなんだよね。
初心者はStringとStringを==で繋いじゃうんですよねー。=でつなぐ人もいますけど。まぎらわしーよねー。
ある程度、熟練してても、VB.NETとC#を交互につかうと間違えそうになる。
# 逆にド初心者というか、プログラミングやってない人だと# i = i + 3;# みたいな式を見て「!?」となるとか
VB.NETなんてなければよかったんや!C#に導入された機能がVB.NETになくて何度悔しい思いをしたことか。優しくも何ともない、劣化C#め。
初心者はjava.lang.String#intern()を知りませんからね...。
Kotlin使おうぜ
scheme: eq?、eqv?、equal?、=、どれにいたしましょうか?
演算子オーバーロードを排除したがために、BigInt等の計算がむごいことになってるがな。
まあ理由はフールプルーフの類だが、「使う人の問題」を言語でなんとかしようとするのは程々にしとくもんだよ。
※あまりにクソな奴は無視しろ!と思うがそういう奴ほど声デカくてうざいんだよねーw
だからSIerにはJavaのウケがいいのか
C#: せやなPHP: せやせやPL/I: 笑止
JavaScript: お、===(厳密等価演算子)ぶつけんぞ
そう、Javaはアホではない。たしかにアホではないんだがね…
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
計算機科学者とは、壊れていないものを修理する人々のことである
Javaはこういうアホな仕様を排除 (スコア:0)
Javaはこういうアホな仕様を排除してて良いんだよね。
Re:Javaはこういうアホな仕様を排除 (スコア:1)
オブジェクト同士の == が参照が同じかどうか比較というアホな仕様をどうにかしてくれませんかね。
Re: (スコア:0)
(Cでいう)ぽぽぽポインタの比較だから!あ、あってるから!
Re: (スコア:0)
普通equls()を使うよな。使うというか作るのだが。オーバーライドセずにそのまま使うと==と同じことになるし。ま、オブジェクトは==を使えないようにして参照先の比較はcheckPointer(obj1,obj2)とかにすればもっとよかったんだろうけど。
初心者はStringとStringを==で繋いじゃうんですよねー。=でつなぐ人もいますけど。まぎらわしーよねー。
Re:Javaはこういうアホな仕様を排除 (スコア:1)
Javaは演算子オーバーライドできない仕様だったから、そうなっちゃった。
C#は最初から演算子オーバーライドできるから、文字列の==は直感的な仕様になってる。
Re: (スコア:0)
言いたい事は分かりますが、高級言語とアセンブラを行ったり来たりしていると
何が直感的な仕様なのか一瞬では判断できなくなります。
Re:Javaはこういうアホな仕様を排除 (スコア:1)
Javaで文字列を==で比較しているコードは、internしている文字列の比較で正しいコードなのか、equalsではなくあえて==で比較している常識的ではないが正しいコードなのか、ただのバグなのか、理解するのは難しい
C#であれば値としての文字列の比較なので直感的かつ常識的に読み書きできる
高級言語とアセンブラを行ったり来たりしているうちに常識を忘れてしまいましたか?
Re: (スコア:0)
でも、=のときは、コピーが作られず、参照が代入されるだけなんだよね。
Re:Javaはこういうアホな仕様を排除 (スコア:1)
初心者はStringとStringを==で繋いじゃうんですよねー。=でつなぐ人もいますけど。まぎらわしーよねー。
ある程度、熟練してても、VB.NETとC#を交互につかうと間違えそうになる。
# 逆にド初心者というか、プログラミングやってない人だと
# i = i + 3;
# みたいな式を見て「!?」となるとか
Re: (スコア:0)
VB.NETなんてなければよかったんや!
C#に導入された機能がVB.NETになくて何度悔しい思いをしたことか。
優しくも何ともない、劣化C#め。
Re: (スコア:0)
初心者はjava.lang.String#intern()を知りませんからね...。
Re: (スコア:0)
Kotlin使おうぜ
Re: (スコア:0)
scheme: eq?、eqv?、equal?、=、どれにいたしましょうか?
Re:Javaはこういうアホな仕様を排除 (スコア:1)
演算子オーバーロードを排除したがために、BigInt等の計算がむごいことになってるがな。
まあ理由はフールプルーフの類だが、
「使う人の問題」を言語でなんとかしようとするのは程々にしとくもんだよ。
※あまりにクソな奴は無視しろ!と思うがそういう奴ほど声デカくてうざいんだよねーw
Re: (スコア:0)
だからSIerにはJavaのウケがいいのか
Re: (スコア:0)
C#: せやな
PHP: せやせや
PL/I: 笑止
Re: (スコア:0)
JavaScript: お、===(厳密等価演算子)ぶつけんぞ
Re: (スコア:0)
そう、Javaはアホではない。
たしかにアホではないんだがね…