gpt4 book ai didi

delphi - 这是 lambda 吗?如果不是的话是什么?

转载 作者:行者123 更新时间:2023-12-03 14:51:16 24 4
gpt4 key购买 nike

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

Linq.From(Emp).Where(Emp['Sal'] > 1000)

不得不说,我看到的第一刻就把我吵醒了。表达式“Emp['Sal'] > 1000”不是 lambda 表达式?!由于试用版是这个组件不附带源代码,我无法弄清楚如何声明函数/过程。

引用:http://www.devart.com/entitydac/docs/ -> Linq 查询 -> Linq 语法 -> 向下滚动到 session 位置

最佳答案

I mentioned this in a blog post a few months ago.我没有源代码可供查看,但几乎可以肯定是这样完成的:

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

关于delphi - 这是 lambda 吗?如果不是的话是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27931116/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com