Я беру курс по промежуточным структурам данных в качестве предварительного условия для поступления в программу CS MS в университете, о котором все в Америке слышали. Одна строчка кода, написанная в классе, привлекла мое внимание:
if (a > 33 | b++ < 54) {...}
Это не пройдет проверку кода на моем рабочем месте. Если вы напишете такой код в интервью, это будет серьезным ударом по вам. (В дополнение к условности с побочными эффектами, это умный за счет ясности.)
На самом деле, я никогда не видел условия с побочными эффектами, и Googling тоже мало что показывает. Еще один студент остался после урока, чтобы спросить об этом тоже, так что я не единственный, кто думал, что это странно. Но профессор был непреклонен в том, что это приемлемый код, и что он напишет что-то подобное на работе. (Его работа в FT в качестве руководителя SWE в компании, о которой вы все слышали.)
Я не могу представить себе мир, в котором эта строка кода была бы приемлемой, не говоря уже о желательности. Я ошибаюсь? Это нормально? Как насчет более общего случая: условия с побочными эффектами? Это когда-нибудь нормально?