假设我有:
MinimHelper
是否有以下代码片段:
QString x;
......在功能上等同于:
if(x.compare("abcdefg") == 0){
doSomething();
}
else{
doSomethingElse();
}
我可以通过编写一个相当简单的程序并执行它来为自己证明这一点,但我很惊讶我无法在这里找到问题/答案,所以我想我会问它为了未来我/其他人。
答案 0 :(得分:3)
QString::compare
只有在传递给它的字符串并且调用它的字符串相等时才返回零。
Qstring::operator==
返回true,否则返回false。
由于比较仅在字符串相等时返回零,然后
(qstrign_variable.compare("text") == 0) == (qstrign_variable == "text")
如果qstrign_variable
在上面的示例中包含"text"
。如果qstrign_variable
包含其他内容,则两种情况都会评估为false。
另请注意std::string
has the same behavior