这是lambda吗?如果不是什么?

kab*_*rgo 7 delphi orm devart

几天前我正在尝试从Devart开始使用名为EntityDAC的delphi的新ORM,我正在阅读特定于LINQ部分的文档,当我看到类似的内容时:

Linq.From(Emp).Where(Emp['Sal'] > 1000)
Run Code Online (Sandbox Code Playgroud)

我得说,在我看到的第一刻唤醒我.表达"Emp ['Sal']> 1000"不是lambda表达式?!因为试用版本是这个组件没有来源我无法弄清楚如何声明函数/过程.

参考:http://www.devart.com/entitydac/docs/ - > Linq查询 - > Linq语法 - >向下滚动到Where会话

Mas*_*ler 12

我几个月前在一篇博客文章中提到过这一点. 我没有资源来看,但几乎可以肯定这样做:

  • 表达式Emp['Sal']返回一个record类型的值
  • 此记录在其上声明了运算符重载
  • Delphi语言将操作符重载定义为函数,并且不要求它们返回任何指定或直观的类型.因此,>这里的运算符不返回布尔值,而是返回另一个记录.
  • 通过链接这些运算符,可以创建表达式树,可以通过LINQ求值程序对其进行求值.