Comments 9
Лямбды очень простая вещь, самое сложное в них это замыкания, так как из-за них можно получить ошибки, которые сложно обнаружить.
можно примерчик замыкания? :) не рублю в этом. И хотелось бы узнать, можно как-то это просто объяснить?
Да у вас в коде есть замыкание — вы используете локальную переменную n внутри лямбды. Это и есть пример замыкания, но плохой, так как писать лямбды с побочным действием очень очень очень плохо. Замыкание проще мыслить как вариант каррирования.
ru.wikipedia.org/wiki/Замыкание_(программирование)
Как раз UseLocal вполне себе пример замыкания.
Согласен с предыдущим оратором, что лучше использовать чистые функции. Иначе нужно следить за побочными эффектами. Хотя такоевые, по крайней мере у меня, почти не встречаются. Видимо особых жестокостей не делаю.
Как раз UseLocal вполне себе пример замыкания.
Согласен с предыдущим оратором, что лучше использовать чистые функции. Иначе нужно следить за побочными эффектами. Хотя такоевые, по крайней мере у меня, почти не встречаются. Видимо особых жестокостей не делаю.
Отлично!
Спасибо
Спасибо
Замечательно, только вот странно что можно не понять в лямбдах?
Несколько замечаний.
1) почему в UseLocal() результат функции присваивается n.
Action f = () => { n = 6; }; — вот так можно писать, когда нам не нужно возвращать значения. Это гораздо удобнее.
Другое дело, что компилятор будет ругаться, что значение не присвоено, но для показательности можно инициировать нулём, который будет заменен на 6.
2) зачем усложнять UseLocal добавление static?
Несколько замечаний.
1) почему в UseLocal() результат функции присваивается n.
Action f = () => { n = 6; }; — вот так можно писать, когда нам не нужно возвращать значения. Это гораздо удобнее.
Другое дело, что компилятор будет ругаться, что значение не присвоено, но для показательности можно инициировать нулём, который будет заменен на 6.
2) зачем усложнять UseLocal добавление static?
Извините, но эта информация не заслуживает отдельного поста — это самые азы. Гораздо интереснее было бы почитать про expressions trees и то как их динамически строить — очень полезная штука когда нужно избежать излишнего ветвления для LINQ-выражений.
Sign up to leave a comment.
Лямбды