我正在寻找一个非常简单 - 基本 - 没有硬核编程的mumbo jumbo,简单地用外行的术语概括了一个Lambda表达式。
答案 0 :(得分:9)
简单地说,lambda表达式是一个可重用的表达式,它带有许多参数:
x => x + 1;
上面的表达式为“给定的x,返回x + 1”。
在.NET中,这很强大,因为它可以编译成一个匿名委托,一个无名函数,你可以声明内联你的代码并评估得到一个值:
int number = 100;
Func<int, int> increment = x => x + 1;
number = increment(number); // Calls the delegate expression above.
然而,lambda表达式的真正强大之处在于它可用于初始化表达式本身的内存表示。
Expression<Func<int, int>> incrementExpression = x => x + 1;
这意味着您可以将该表达式赋予LINQ to SQL之类的内容,并且它可以理解表达式的含义,将其转换为具有相同含义的SQL语句。这是lambda与普通方法和委托非常不同的地方,通常是混乱开始的地方。
答案 1 :(得分:3)
Lambda表达式是内联函数,它们与常规函数具有不同的语法。
用于平方数字的示例Lambda表达式。
x => x * x
答案 2 :(得分:2)
一种小型的无名内联方法。这对你来说基本够用吗?我不确定你到底在找什么。
你也用“外行人”的术语说过 - 我认为你有一定程度的软件开发经验(所以不是一个完整的外行)
答案 3 :(得分:1)
在非函数式编程语言中,表达式(作用于变量)执行计算,并执行一次这些计算。
Lambda表达式允许您通过可以在列表上工作的不同语法代码定义(在表达式中),并且在概念上可以被视为函数。
您可以将其简化为“他们让您在表达式中定义函数”。
不完全达到“为什么”。在我看来,为什么更有趣。 Lambda表达式允许操作函数和部分函数。