你能解释一下lambda表达式吗?
你能解释一下lambda表达式吗?
这个问题已经有了答案 :
我真的不理解lambda表达式,虽然它们已经存在于ALGOL的时代,但是直到Python和Ruby变得非常流行时,我才开始听到它们。现在,由于C#有了=>
语法,我所在的世界(.NET)的人们越来越多地谈论lambda表达式。
我读了lambda演算的维基百科上的文章,但我不是一个数学家。从实际角度来说,我并不真正理解它。我什么时候应该使用lambda表达式?为什么?如何知道我应该这样做?
您能否展示如何使用lambda表达式解决问题,以before-and-after格式展示示例?任何命令式语言都可以,但对我来说,C#是最容易理解的。
admin 更改状态以发布 2023年5月23日
就 C# 而言,Lambda 表达式是创建委托(或表达式树,不过现在先不谈这些)的一种简便方法。
C# 1 中我们只能从普通方法中创建委托实例。
C# 2 中我们获得了匿名方法。
C# 3 中我们获得了 Lambda 表达式,它们就像更简洁的匿名方法。
当您想要表达一些仅在一个值传入并返回一个值的逻辑时,它们尤其简洁,例如在 LINQ 的上下文中:
// Only include children - a predicate var query = dataSource.Where(person => person.Age < 18) // Transform to sequence of names - a projection .Select(person => person.Name);
有一个更详细的讨论 - 以及其他方面 - 在我的闭包文章中。