Ich nehme an einem Zwischenkurs für Datenstrukturen teil, um an einer Universität teilnehmen zu können, von der jeder in Amerika gehört hat. Eine Codezeile, die im Unterricht geschrieben wurde, fiel mir auf:
if (a > 33 | b++ < 54) {...}
Dies würde keine Codeüberprüfung an meinem Arbeitsplatz bestehen. Wenn Sie in einem Interview Code wie diesen schreiben würden, wäre dies ein bedeutender Schlag gegen Sie. (Es ist nicht nur eine Bedingung mit Nebenwirkungen, sondern auch klug auf Kosten der Klarheit.)
Tatsächlich habe ich noch nie eine Bedingung mit Nebenwirkungen gesehen, und Googeln taucht auch nicht viel auf. Ein anderer Schüler blieb nach dem Unterricht zurück, um auch danach zu fragen, also bin ich nicht der einzige, der das für komisch hielt. Aber der Professor war ziemlich fest davon überzeugt, dass dies ein akzeptabler Code war und dass er so etwas bei der Arbeit schreiben würde. (Sein FT-Job ist als Principal SWE in einem Unternehmen, von dem Sie alle gehört haben.)
Ich kann mir keine Welt vorstellen, in der diese Codezeile jemals akzeptabel oder gar wünschenswert wäre. Liege ich falsch? Ist das ok? Was ist mit dem allgemeineren Fall: Bedingungen mit Nebenwirkungen? Sind die jemals in Ordnung?