当前位置: 首页 > 知识库问答 >
问题:

在Clojure中有没有构造lambda函数?

呼延才俊
2023-03-14

我可能是错的,但是在rethinkdb驱动程序中,lambda不知怎么地被编译成ast语法,这些语法被转换成js并发送到数据库。我相信我需要以某种方式显式地创建一个lambda。http://www.retinkdb.com/blog/lambda-functions/那么这个问题是如何在Clojure中将lambda实现为一个名为“lambda”的函数的呢?只显示如何使用函数,而不是lambda。

共有1个答案

夏学名
2023-03-14

lambda只是一种语法糖,就像clojure宏一样。您不能在java中使用宏,也不能在Clojure中使用java的“lambda语法”。但是您可以在clojure中创建java lambda语法创建的对象。

也就是说,在java中,lambda语法创建一个对象,该对象根据方法中的类型实现接口。该接口具有单个非默认和非静态方法。

如果您想在clojure中构造一个“Java lambda”,那么您真正需要做的是创建一个实现该接口的对象。

 类似资料:
  • 我正在开始使用Android。我想创建一个数据库。但是日志显示错误,我的服务没有空构造函数。我无法添加任何空构造函数。一定是我做错了什么。但是我找不到它。请帮帮我。 主要活动。java: 我的其他班级 活动清单。xml 日志

  • 问题内容: 在Java中,如果有接口: 然后实现是: 所以我的意思是,如果用户想用构造函数声明实例: 那不可能吗? 问题答案: 那不可能吗? 那就对了。你永远做不到 之后你必须选择一个 类 实现了接口(*) ,如: 为什么? 您可以将接口视为类的属性。比喻是形容词,例如“红色”。例如,创建一个红色的球()或一辆红色的汽车()是很有意义的,但是仅创建“红色”()没有任何意义(“红色代表 什么 ?”)

  • 问题内容: 我在一个Activity中有一个IntentService,当我尝试调用该服务时,它将引发此错误,我发现这很奇怪,因为如果我声明了空的构造函数。 错误: AndroidManifest.xml 活动: 问题答案: 你是一个内部阶级。如果要将其保留在内部,请将其更改为static: 您可能需要阅读不同类型的嵌套类。google的第一个链接:http : //docs.oracle.com

  • 问题内容: 只有最后一部分(我的意思是我仅对此有问题) 当我编译它时,我没有合适的构造函数错误。为什么是这样??顺便说一下,Spirtokouto类的目的是要增加一个计数值(权重)。我可以将一个班级扩展到> 1个班级吗? 问题答案: Box类有两个构造函数:,但它们都不带四个参数,而您要用四个参数来调用它,因此请更改此参数: 对此: 调用必须首先在构造函数中进行。 我可以将一个班级扩展到 > 1个

  • 我正在将我的一些Java代码转换为Kotlin,我不太明白如何实例化Kotlin代码中定义的接口。作为一个例子,我有一个接口(用Java代码定义): 然后在我的Kotlin代码中,我进一步实例化了这个接口: 而且效果很好。然而,当我将MyInterface转换为Kotlin时: 当我尝试实例化接口MyListener时,我得到了一条错误消息:-尽管在我看来除了语法之外没有什么变化。我是否误解了Ko

  • 我正在尝试使用recyclerview和room库创建一个简单的ToDoList应用程序。在使用room和mvvm架构方面,我正在遵循android开发者代码实验室,我似乎遇到了困难。我已经设置了应用程序的每一层,但在尝试使用ViewModelProvider实例化ViewModel时出现了一个错误。下面是我的ViewModel类中的代码。 } 下面是我试图初始化ViewModel的main片段中