2017-01-16 1 views
2

Gibt es technisch/logische Unterschiede zwischen den Vergleichen "! = True" und "== false" in Programmiersprachen, und wenn ja, welcher Vergleich sollte zu welchem ​​Anlass gewählt werden?Unterschied zwischen "! = True" und "== false"?

+0

Das Gleiche. Normalerweise wird 'exp == false' besser als'! Exp' ausgedrückt. – aioobe

Antwort

2

Logisch kann es Unterschiede geben, abhängig von der Art des Wertes, den Sie vergleichen und Sprache, die Sie verwenden. Zum Beispiel:

x == false impliziert x != true, aber x != true immer bedeuten nicht x == false weil x auch einiger Unsinn Wert sein kann.

1 + 1 = 3 ist sowohl == false als auch != true.

7 > cat ist weder == false noch != true, da es Unsinn ist.

x = null ist != true aber ist nicht == false.

+0

Ich denke, dein '7> cat' Beispiel ist seltsam. Es erscheint genauso seltsam wie der Ausdruck 'cat == false' oder' cat! = True', von denen keiner in irgendeiner mir bekannten Sprache Compiler ausführen würde. Die Semantik von etwas zu diskutieren, das kein gültiges Programm ist, erscheint mir seltsam. – aioobe

+1

@aioobe Ich würde dem größtenteils zustimmen, aber ich konnte dies in schwach typisierten Sprachen sehen. Deshalb habe ich in meiner Antwort "abhängig von der Art des Wertes, den Sie vergleichen" angegeben. –

+0

Ein anderes Beispiel könnte eine Sprache (oder eine formale Struktur) sein, in der der Typ Boolean Nullwerte zulässt. In diesem Fall kann eine Null weder wahr noch falsch sein, und so ist wahr möglicherweise nicht falsch. – MattClarke

Verwandte Themen