Erster Code:
%Vor%Zweiter Code:
%Vor%Was ist der Unterschied zwischen den Blöcken?
Funktionell gibt es keinen Unterschied.
Einige Entwickler bevorzugen das Schreiben des zweiten Formats, um Tippfehler zu vermeiden (falls Sie eine =
verpassen), so dass der Compiler vor dem Tippfehler warnt.
Die zweite ist bekannt als Yoda-Bedingung .
Ich sage, dass es keinen Unterschied gibt, denn Sie können sich nicht vor jedem winzigen Detail schützen und sich darauf verlassen, dass der Compiler für Sie laut aufschreien wird. Wenn Sie einen ==
schreiben möchten, sollten Sie einen ==
und kein =
.
Die Verwendung des zweiten Formats führt nur zu etwas unklarem, nicht lesbarem Code
Auch die meisten Mainstream-Compiler warnen vor der Zuweisung anstelle von Gleichheit Tippfehler durch Ausstrahlung eine Warnung , sobald Sie alle Warnungen aktiviert haben (was Sie sowieso tun sollten).
Funktional sind sie in C gleich; Ich bin mir nicht sicher über andere Sprachen, in denen hässliche Dinge wie das Überladen von Operatoren ins Spiel kommen.
Stilistisch ist letzteres extrem kontraintuitiv und persönlich finde ich es extrem hässlich. Der Punkt ist, den Compiler zu veranlassen, einen Fehler zu verursachen, wenn Sie versehentlich =
anstelle von ==
schreiben, aber gute Compiler haben eine Option, Sie davor zu warnen, so dass es unnötig ist.
Ja, sie sind gleich, was C # betrifft. Für komplexere Situationen besuchen Sie A == B vs B == A, Was sind die? Unterschiede
Für C ++ ist es möglich, obwohl es unwahrscheinlich ist, dass es einen Unterschied geben könnte. Es hängt davon ab, was ich Typ ist. z.B.
%Vor%Jemand, der solchen Code schreibt, sollte natürlich erschossen werden.
In C # gibt es keinen Unterschied. Aber in C ++ gab es einen Unterschied in der Leistung, weshalb Sie beide in C # -Code in diesen Tagen verwendet sehen - eigentlich denke ich an i ++ vs ++ i über Leistung - 0 == i ist eine gängige Codierung Empfehlung in C / C ++ zu vermeide i = 0 als versehentliche Operation