Назначение с =
было специально разработано, чтобы не делать такого рода вложенных побочных эффектов внутри большего выражения. На других языках (глядя на вас C) люди могут набрать =
там, где они хотели использовать ==
, и назначить что-то случайно. См. этот вопрос для дальнейшего обсуждения того, почему =
был разработан таким образом.
Назначение с =
является утверждением, а не выражением, оно не оценивает то, что справа сторона знака равенства. Это означает, что пока нет смысла тестировать, чтобы решить, стоит ли продолжать. :=
(AKA - оператор моржа) предоставляет значение, которое может проверить тест, см. этот вопрос .