Jeden halbwegs anständige Compiler den gleichen Code löschen (es sei denn, == und = überlastet wurde, wie an anderer Stelle erwähnt) Optimierungsfragen sind also irrelevant.
Ich glaube nicht, dass ich jemals "if (! (A == b))" außerhalb einer größeren Bedingung gesehen habe, wo es klarer ist, DeMorgans Theorem nicht zu verwenden, aber ich könnte es als a sehen Art und Weise zu betonen, dass die beiden Werte wirklich identisch sein sollten und es etwas tief falsches gibt, wenn sie nicht sind. Ein hupendes "OmgICantBelieveThisHappenedException()" in der nächsten Zeile würde jedoch noch deutlicher werden. :-)
Abgesehen von diesen beiden Situationen muss ich dem "use! =" -Camp zustimmen, da es klarer ist, wenn Sie den Code überfliegen. Das '!' kann leicht übersehen werden, vor allem mit einigen Formatierungskonventionen.
Das erste, woran ich denke, wenn ich das sehe, ist entweder etwas wurde aus dem Ausdruck gelöscht, oder der Programmierer, der das geschrieben hat, kam aus einer anderen Sprache und ist neu in diesem. –
@John MacIntyre - Ich habe den Eindruck, dass es der erste Fall war. Das heißt, er hat zuerst nach Gleichheit gesucht und dann entschieden, seinen if-Block mit seinem else-Block zu wechseln. –