Статические лямбды
Я уже писал пост о том, что лямбды - это плохо, т.к. в основном лямбды используют ради замыканий, которые в свою очередь приводят к аллокациям, а аллокации - этоплохо медленно 🙂
Видимо, разработчики шарпа тоже решили исправить ситуацию и добавили слово static к определению лямбды:
Теперь можно не бояться, что мы случайно используем переменную извне и получим замыкание.
В целом это синтаксический сахар, который ровным счетом ничего не делает, кроме как запрещает передавать переменные в лямбду через замыкание. Если вы использовали лямбды правильно, то вы можете смело добавить в свои лямбды static.
#basics #staticlambda
Я уже писал пост о том, что лямбды - это плохо, т.к. в основном лямбды используют ради замыканий, которые в свою очередь приводят к аллокациям, а аллокации - это
Видимо, разработчики шарпа тоже решили исправить ситуацию и добавили слово static к определению лямбды:
Method(static () => …);
Теперь можно не бояться, что мы случайно используем переменную извне и получим замыкание.
В целом это синтаксический сахар, который ровным счетом ничего не делает, кроме как запрещает передавать переменные в лямбду через замыкание. Если вы использовали лямбды правильно, то вы можете смело добавить в свои лямбды static.
#basics #staticlambda
Telegram
Unity: Всё, что вы не знали о разработке
Немного про аллокации и кэш.
Самый простой пример аллокаций - это замыкание.
Тут остановимся подробнее. Где могут скрываться аллокации, например, в такой конструкции:
list.Where(x => x > 10).ToArray()
Очевидно, что при вызове ToArray будет создан массив.…
Самый простой пример аллокаций - это замыкание.
Тут остановимся подробнее. Где могут скрываться аллокации, например, в такой конструкции:
list.Where(x => x > 10).ToArray()
Очевидно, что при вызове ToArray будет создан массив.…
🔥29👍15❤2