是否有相当于 .net
的表达式树作为 JVM
的 LINQ 的基础?我想在 Scala
中实现一些类似于 LINQ 的代码结构,我想知道我是否也必须推出自己的表达式树库。
更新: 我对 linq 等价物本身不感兴趣。 .net 有大量的表达式树工具,可以轻松地在运行时动态编译代码,并且可以从您的代码中调用它。我要承接的项目与数据库无关。表达式树提供了一种简单的方法来描述对数据进行操作的代码。
如果没有库,我认为另一种选择是创建一个发出字节码的库。
最佳答案
从 2.10 开始,Scala 有了宏,可以让您在编译时访问其参数的抽象语法树:http://scalamacros.org/ .以下是一些使用示例,包括 LINQ 草图:http://scalamacros.org/paperstalks/2013-12-02-WhatAreMacrosGoodFor.pdf .
关于Java 表达式树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1479547/