Ist es jemals ein guter Codierungsstil, sich stark auf den Kurzschluss in der Booleschen Auswertung zu verlassen?unter Verwendung der Java-Kurzschlussauswertung (Codierungsstil)
Ich habe jemanden kennen gelernt, der es liebt, dies zu tun. wenn die Geschäftslogik Zum Beispiel ist: „Wenn Alice nicht hungrig ist oder wenn beide Alice und Bob sind hungrig“, statt zu schreiben
// if Alice is not hungry or both alice and bob are hungry
if (!A || A && B)`
er würde
// if Alice is not hungry OR both alice and bob are hungry
if (!A || B)
schreiben Argument, dass ||
kurz ist -circuited, also wird der rechte Operand genau dann ausgewertet, wenn der erste false
ist (was A = true
bedeutet).
(Das Ärgerliche daran ist, dass auf den ersten Blick könnte man denken, dies ein Fehler ist, aber dann fühlen würden Sie dumm aussehen, wenn Sie es ändern, was offensichtlicher ist!)
In boolescher Logik ist es wahrscheinlich in Ordnung. Es ist normalerweise für die meisten Programmierer verständlich. Es könnte jedoch einen Kommentar wert sein. –
Dies ist eine Meinungsfrage, aber nach meiner Erfahrung habe ich gesehen, dass Java-Kurzschlüsse viel zur Vereinfachung boolescher Ausdrücke verwendet haben. Es ist nicht zu schwer zu lesen, sobald man sich daran gewöhnt hat. – Kon
@AnubianNoob Recht, das Problem ist, dass der Entwickler den Kommentar hinterlassen würde, der das Prädikat eher wie ein Fehler aussehen lässt! (Das heißt, das Objekt würde die Geschäftslogik angeben, während das Prädikat etwas anderes zu tun scheint!) –