アカウント名:
パスワード:
第一線のエンジニアという言が真ならば、今時のプログラムなんて楽勝です。GUIだってネットワークだってLLだって、一皮向けばC言語とアセンブリの世界に突入です。ゼロから始めた初学者がJavaで「同じ単語を格納したstringの比較が真にならない」件で悩んでる間に、たぶんJavaに加えてP*言語ぐらいはマスターできてるんじゃないかな。
きちんと基礎の基礎が身についてる人っていうのは、応用習得はびっくりするぐらい早いもんです。私の実例でも、Cとアセンブリしかやってこなかった人が、わずか1週間で、経験3年の奴に勝るとも劣らないC#コードを書いていましたよ。さすがにOOな所は厳しかったけど、delegateやクロージャをばりばり使いこなしてました。
もちろん今時の、オープンフレームワークを切り貼りするプログラムについては数多のライブラリを時間をかけて1つ1つ知っていくしかないのだけど、それは必要になったときにすれば充分じゃないかと。
あ、でもC++には近づかない方がいい。あれを真に使いこなすには少なくとも10年かかる。
Javaで「同じ単語を格納したstringの比較が真にならない」件
たまに真になるんですよね。余計なおせっかいというか何と言うか。
オブジェクト型の比較演算子(==)では内容比較ではなくポインタ比較を行っているためです。String a = "H";String b = new String("H");if (a == b) {...} // ←aとbは同じ内容でも別アドレスの文字列なのでここの条件節は偽になります
そいや、Cでもchar foo="foo";char bar="foo";がコンパイラの設定によってfooとbarが同一アドレスになったり非同一アドレスになったりするケースがありますな。
# 定数なのにどっか(外部DLLとか)で書き換えらされてて、関係ないはずのモジュールが巻き添えになったりとか・・・
char foo="foo"; char bar="foo";
char *foo="foo"; でしょ…っと思ったけど、これはポインタの下8ビットの値を見てるだけだから言ってる事は同じか。
茶々を入れてるつもりが無粋な解説になってしまってごめんなさい。
*が抜けてました・・・orz
# 本当にC/C++で色々書いてる人とは思えないバグですね♪
const も抜けてるよ!!抜けてても動くしコンパイラも文句言わないだろうし、kei100 さんも分かってる(#1806649)だろうけど一応
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
ハッカーとクラッカーの違い。大してないと思います -- あるアレゲ
楽勝です (スコア:5, すばらしい洞察)
第一線のエンジニアという言が真ならば、今時のプログラムなんて楽勝です。
GUIだってネットワークだってLLだって、一皮向けばC言語とアセンブリの世界に突入です。
ゼロから始めた初学者がJavaで「同じ単語を格納したstringの比較が真にならない」件で悩んでる間に、
たぶんJavaに加えてP*言語ぐらいはマスターできてるんじゃないかな。
きちんと基礎の基礎が身についてる人っていうのは、応用習得はびっくりするぐらい早いもんです。
私の実例でも、Cとアセンブリしかやってこなかった人が、わずか1週間で、経験3年の奴に勝るとも劣らない
C#コードを書いていましたよ。さすがにOOな所は厳しかったけど、delegateやクロージャをばりばり使いこなしてました。
もちろん今時の、オープンフレームワークを切り貼りするプログラムについては
数多のライブラリを時間をかけて1つ1つ知っていくしかないのだけど、それは必要になったときにすれば充分じゃないかと。
あ、でもC++には近づかない方がいい。あれを真に使いこなすには少なくとも10年かかる。
Re: (スコア:0)
たまに真になるんですよね。余計なおせっかいというか何と言うか。
Re: (スコア:0)
Re: (スコア:0)
オブジェクト型の比較演算子(==)では内容比較ではなくポインタ比較を行っているためです。
String a = "H";
String b = new String("H");
if (a == b) {...} // ←aとbは同じ内容でも別アドレスの文字列なのでここの条件節は偽になります
Re: (スコア:1)
そいや、Cでも
char foo="foo";
char bar="foo";
がコンパイラの設定によってfooとbarが同一アドレスになったり非同一アドレスになったりするケースがありますな。
# 定数なのにどっか(外部DLLとか)で書き換えらされてて、関係ないはずのモジュールが巻き添えになったりとか・・・
Re:楽勝です (スコア:0)
char *foo="foo"; でしょ…っと思ったけど、これはポインタの下8ビットの値を見てるだけだから言ってる事は同じか。
茶々を入れてるつもりが無粋な解説になってしまってごめんなさい。
Re:楽勝です (スコア:1)
*が抜けてました・・・orz
# 本当にC/C++で色々書いてる人とは思えないバグですね♪
Re: (スコア:0)
const も抜けてるよ!!
抜けてても動くしコンパイラも文句言わないだろうし、kei100 さんも分かってる(#1806649)だろうけど一応