Динамическая типизация, кстати, здесь не при чём.
Скажете, в Java сделано "по-взрослому", значение захватывается как и положено в момент определения лямбда-выражения? Более того, компилятор сам напомнит:
"local variables referenced from a lambda expression must be final or effectively final".
Ну вот например пример на Java с final. Что выведет? :)
(пауза)
что-то такое: 1 9 8 7 3 0 4 6 5 2
Только теперь для понимания этого требуется пройти трек уже по параллельным вычислительным моделям :)
Спрашивали "а как этому всему правильно следовать на практике, чтобы таких косяков не допускать?"
Готовлю несколько новых курсов по software design, в течение лета.
Post #1271
1.27K

- 🔥 51
- 🤔 9
- 👍 6
- ❤ 3
- 🐳 3