采访:什么是Lambda表达式?

采访:什么是Lambda表达式?,lambda,Lambda,我最近接受了两次电话采访 在两次采访中,我都被问及定义Lambda表达式的最后一个问题 我声称Lambda表达式是一个未命名的方法,而不是委托。 但这还不够 我发现很难在电话采访中准确地解释这一点 有人知道得更清楚吗?也许他们只是想知道LINQ是语言集成查询 也就是说,如果他们真的想要解释LINQ是由什么组成的,我可能会包括您提供的更多信息。比如: LINQ或语言集成查询是在.NET3.5中添加的一组语言添加和框架类,它支持更功能化的查询操作方法。它基于IEnumerable和IQueryabl

我最近接受了两次电话采访

在两次采访中,我都被问及定义Lambda表达式的最后一个问题

我声称Lambda表达式是一个未命名的方法,而不是委托。 但这还不够

我发现很难在电话采访中准确地解释这一点


有人知道得更清楚吗?

也许他们只是想知道LINQ是语言集成查询

也就是说,如果他们真的想要解释LINQ是由什么组成的,我可能会包括您提供的更多信息。比如:

LINQ或语言集成查询是在.NET3.5中添加的一组语言添加和框架类,它支持更功能化的查询操作方法。它基于IEnumerable和IQueryable的扩展方法以及它们的通用对应方法,这些方法允许在LINQ中延迟执行对象,并通过IQueryable进行远程处理,以及许多其他特性。C和VB.NET也进行了语言更改,以直接在语言中支持更自然的查询语法


他们可能想让你知道LINQ是查询IQueryable和IEnumerable对象的新DSL。来自。。。哪里选择基本上是语法。知道它是用lambdas和功能性风格在封面下实现的,可能会给你加分

我说过Linq是一个未命名的方法来代替委托

实际上,这根本不是LINQ,而是一个lambda表达式。从技术上讲,LINQ甚至不使用它们

LINQ代表语言集成查询。非常明确地说,它是从……那里。。选择关键字,即集成到语言中的查询语法


现在,为了让这些关键字起作用,我们在语言和CLR中添加了很多内容,如lambdas、扩展方法、可枚举类等。

为了回答您修改过的问题,您的答案实际上是好的。我唯一要做的改变就是强调inline这个词

Lambda表达式是一个未命名的方法,在需要委托的位置内联编写。

Lambda表达式是一个无名的代码暂停

考虑这个匿名乘法两件事函数a.k.a.lambda表达式,使用一些非常非特定的符号

λ(x, y) -> x * y

你的回答非常具体,因为你在一个地方使用了lambdas,我猜是C?,我怀疑面试官要求的是更全面的理解。委托的概念、C语言和方法的思想都是lambda的概念和工作方式的次要部分。例如,您可以使用lambda表达式进行计算,而不涉及任何方法。

lambda表达式是作为常量值给出的无名函数。它们可以出现在任何其他常量可能出现的任何地方,但通常作为参数写入其他函数。典型的例子是,您将把一个比较函数传递给一个泛型排序例程,而不是麻烦地定义一个完整的函数并导致词汇中断和名称空间污染来描述这个比较,您只需传递一个描述比较的lambda表达式即可

但是,这忽略了Lambda表达式最重要的特性之一,即它们在外观上下文中执行。因此,他们可以使用在该上下文中定义的变量值。这将函数指针与真正的lambda表达式区分开来。在支持可变变量的语言中,适当的lambda表达式提供了更改这些变量值的能力


在C++、Objc、C和java 8的所有LISPS、Perl、Python和足够的版本中,lambda表达式的语法不同,但是在C中,尽管它有一个处理传递函数的方法,也有一些借口作为参数。它们是一个具有特定语义的语法元素,这些语义对运行时的要求比C的设计要求更高。

您应该在msdn中查找上面的部分,让我们开始这个探索。所有LINQ方法都命名为。有些人将匿名方法作为参数,即匿名方法或lambda表达式。我不敢相信回答这一明显重复问题的人数。别忘了,如果人力资源部正在进行采访,他们可能只是得到了答案,但在某种程度上还不理解上下文,无法理解你的答案的含义。我的意思是Lambda表达式,我的答案也指向Lamda表达式,如您所见。当我问这个问题时,不知怎么的,我脑子里一直在想林克。我已经改正了。再次抱歉,我才意识到我把问题搞糟了。你是对的。问题应该是Lambda表达式。在写这篇文章的时候,我脑子里有一些想法请c
我相信,从JDK-1.8开始,Java中就可以使用linkLambda表达式。它们看起来与C中的Lambda表达式非常相似,只是Java的胖箭头很细;->与=>相反,我将避开特定的代码概念:lambda抽象是关于计算的,而不是任何描述这种计算的特定语言。碰巧有些编程语言包含了或多或少直接表示它们的语法,就像大多数流行的语言直接表示代数表达式一样。