JavaとC#でいることを私は説明から読み取るように、その文字列の比較は単純に「==」オペレータによって行うことができないようです説明:私はこのコードを見て違い、C++、C#とJavaは
== tests for reference equality (whether they are the same object).
.equals() tests for value equality (whether they are logically "equal").
C#では:
if (parametrii[0].Equals("teach"))// to check the equality of values
それは "=="()のアドレスと.equalでチェックしているだけの値をチェックしているように私には理にかなっています。 C言語で
string1 = "helloworld"
string2 = "helloworld"
print(string1 == string2)// result true
++:
while(getline(ifs, line2)){
stringstream ssm(line2);
string from_stop;
string to_stop;
getline(ssm, from_stop, ',');
getline(ssm, to_stop, ',');
if(from_stop == to_stop){
adjList[from_stop].push_back(to_stop);
}
}
私はすべての時間++ PythonとCに "==" を使用してきたと私は例
Pythonで
ため、このようなエラーが発生したことがないしかし
または
bool stop124 = false;
bool stopA24 = false;
bool stop126 = false;
for (int i = 0; i < adjVec.size(); i++) {
if (adjVec[i] == "124") stop124 = true;
else if (adjVec[i] == "A24") stopA24 = true;
else if (adjVec[i] == "126") stop126 = true;
}
これらのコードは正常にコンパイルされ、値の比較の正しい結果が得られます。私はC++でstrcmp()関数があることを知っていますが、ほとんど使用しないで、2つの文字列の値が等しいかどうかをチェックするのに、==を使うのではなく、いつ使うのかよく分かりません。
私の質問は、これらのプログラミング言語に違いがあるか、それとも私がそれらのエラーに遭遇しなかったのは私にとって幸運であるためです。
'=='と言う人は、参照の平等をチェックしますか?それは必ずしもそうではありません。 (少なくともC#ではありません) –
@ M.kazemAkhgary引用はJavaを参照しています。 – Servy
'=='が何をしているか知りたいのであれば、文字列を異なる言語で比較するときは、各言語の演算子に関するドキュメントを参照してください。彼らはすべてそれが何を正確に説明します。 – Servy