Найти в Дзене
Айти Поц

Отличие i++ от ++i

Сёркис!!!

Подписывайтесь на мой Telegram-канал! Больше интересного контента!!!!


Спойлер: ++i - быстрее. Это скорее всего знает любой, но не каждый знает, почему?)

Начнём с того, как устроен постфиксный инкремент (i++): создаётся временная переменная, куда кладется старое значение, затем это значение увеличивается на один и потом возвращается старое значение. Уже можно заметить, что накладка в памяти и времени.

Префиксный инкремент (++i) устроен проще, сразу же возвращается результат на единицу больше.

Окей, теперь давайте затестим. Допустим Цукерберг захотел написать функцию, которая выведет всех пользователей Facebook'а. Запустим два цикла с разными инкрементами и увидим, что префиксный почти всегда выигрывает на 2 секунды.

Это кстати яркий пример того, что любой код можно очень сильно оптимизировать средствами самого языка. Поэтому перед использованием инструмента - посмотрите как он устроен внутри :)