Je prends un cours sur les structures de données intermédiaires comme condition préalable à l'entrée au programme CS MS dans une université dont tout le monde en Amérique a entendu parler. Une ligne de code écrite en classe a attiré mon attention:
if (a > 33 | b++ < 54) {...}
Cela ne passerait pas un examen du code sur mon lieu de travail. Si vous avez écrit un code comme celui-ci dans une interview, ce serait une grève importante contre vous. (En plus d'être un conditionnel avec des effets secondaires, il est intelligent au détriment de la clarté.)
En fait, je n'ai jamais vu de conditionnel avec des effets secondaires, et Google ne se présente pas beaucoup non plus. Un autre élève est resté derrière après le cours pour poser des questions à ce sujet également, donc je ne suis pas le seul à penser que c'était bizarre. Mais le professeur était assez catégorique qu'il s'agissait d'un code acceptable et qu'il écrirait quelque chose comme ça au travail. (Son travail de FT est en tant que SWE principal dans une entreprise dont vous avez tous entendu parler.)
Je ne peux pas imaginer un monde dans lequel cette ligne de code serait jamais acceptable, encore moins souhaitable. Ai-je tort? Est-ce correct? Qu'en est-il du cas plus général: les conditions avec effets secondaires? Est-ce que ça va?