Вебинар: Go-Go-Gadg...Error? Смотрим, как ошибаются Go разработчики! - 26.08
Анализатор обнаружил ошибку, связанную с использованием постфиксных инкремента или декремента при записи в эту же переменную.
Рассмотрим пример:
let value = 0;
....
value = value++; // <=
....
После присваивания переменная value останется равна нулю. Это связано с тем, что постфиксные инкремент и декремент возвращают значение переменной до её изменения. Порядок операций в данном выражении будет следующим:
value;value на единицу; value значения, полученного на шаге 1. Таким образом, результат выполнения постфиксных инкремента или декремента теряется при перезаписи в ту же переменную.
Это может быть опечатка, и на самом деле нужно было сохранить результат в другую переменную. В таком случае корректный вариант может выглядеть так:
let value = 0;
let savedValue = ....;
....
savedValue = value++;
....
Либо же программист написал присваивание по ошибке, и на самом деле оно тут не нужно:
let value = 0;
....
value++;
....
Диагностическое правило классифицируется как:
Была ли полезна эта страница документации?
Мы ответим вам на:
Если вы так и не получили ответ, пожалуйста, проверьте, отфильтровано ли письмо в одну из следующих стандартных папок: