lambda 相关问题

编程语言中的匿名函数或闭包,如Lisp,C#,C ++,Lua,Python,Ruby,JavaScript或Java。 (另外,lambda表达式。)

为什么一个只返回有状态 lambda 的函数会编译成任何程序集?

以下非模板化(或者是吗?)函数返回一个非泛型、有状态的 lambda, 自动 foo(双 a) { 返回 [a](double b) -> double { 返回a+b; }; } 编译下来...

回答 1 投票 0

在可组合函数的调用中“it”来自哪里?

我从 Android Developers Codelab 找到了一个代码示例,它涉及 Jetpack Compose 中的导航,它是“Rally Material Study”,代码位于 GitHub 上:NavigationC...

回答 1 投票 0

将 lambda 传递给具有推导类型的模板化函数

我有以下示例,其中包含两个版本的 make 函数,它们接受另一个函数并推导参数类型。然后它创建一个具有该功能的模板化签名类型的结构...

回答 1 投票 0

使用 Java 8 Lambda \ Stream 从循环调用方法并返回值

我正在尝试在Java 8中转换下面的传统for循环。我尝试使用流的forEach迭代循环并使用过滤器进行包含检查,但我无法理解如何制作...

回答 3 投票 0

错误 CS1977:无法使用 lambda 表达式作为动态分派操作的参数

我已将一些代码从 vb.net 转换为 c#,但 lambda 存在问题。 错误 CS1977:无法使用 lambda 表达式作为动态分派操作的参数,无需先进行 c...

回答 3 投票 0

Java中如何获取lambda方法的返回类型?

我正在尝试在我的Java代码中获取泛型类型的类。我使用阿里巴巴的 FastJSON 进行 JSON 处理。以下是我的代码的关键部分: 呼叫者: 公共功能查找功能...

回答 1 投票 0

如何编写具有不同优先级的Lambda表达式? [已关闭]

这是数据库中的字符串列表: ABC 阿德韦克斯 绝对值 阿布威 阿塞德夫格 acbnret ab 我想获取列表中内容为ab且内容以ab开头的前两条数据。条件是...

回答 1 投票 0

从 AWS Lambda 发送 RabbitMQ 消息

知道为什么 AWS Lambda 函数无法使用 amqp 协议向 RabbitMQ 发布消息吗? (我将node.js运行时与node amqplib运行时一起使用) 当使用我本地的代码时

回答 2 投票 0

设计函数API以避免对象生命周期问题

我有一个返回 lambda 的函数。 自动 make_scanner(std::vector const &v) { 自动开始 = v.cbegin(); 自动结束= v.cend(); return [begin, end] () 可变 -> in...

回答 1 投票 0

C++:如果 lambda 表达式通过引用捕获右值会怎样[重复]

我正在尝试使用 lambda 表达式将一些函数包装为 void() 函数。代码如下: 类 VoidFunctionWrapper { 民众: 空函数包装器() { 函数_=...

回答 1 投票 0

异步 lambda 表达式未编译

我有一个带有 Select 的 lambda 表达式,其中创建了新的 ResourcesResponse.Resource 对象。 Resource 对象有一个计算的 Order 字段,它调用一个名为

回答 1 投票 0

Excel 函数无需 VBA 即可根据值构造数组

NB 这个问题指的是一些功能,例如可选的 LAMBDA 参数和 ISOMITTED 函数,这些功能仅在 Beta 通道中可用(在撰写本文时)(更多信息请参见此处) 我是

回答 5 投票 0

Excel Lambda 函数中的多个参数

在Excel中,有没有办法创建最终可以接受任意数量参数的Lambda函数? 就像 TextJoin 函数一样,前两个参数是固定的,然后从第三个参数开始...

回答 1 投票 0

Lambda 表达式和泛型仅在方法中定义

假设我有一个通用接口: 接口 MyComparable> { 公共 int 比较(T obj1,T obj2); } 以及方法排序: 公共静态 假设我有一个通用接口: interface MyComparable<T extends Comparable<T>> { public int compare(T obj1, T obj2); } 还有一个方法sort: public static <T extends Comparable<T>> void sort(List<T> list, MyComparable<T> comp) { // sort the list } 我可以调用此方法并传递 lambda 表达式作为参数: List<String> list = Arrays.asList("a", "b", "c"); sort(list, (a, b) -> a.compareTo(b)); 这样就可以了。 但是现在如果我将接口设置为非通用,并将方法设置为通用: interface MyComparable { public <T extends Comparable<T>> int compare(T obj1, T obj2); } public static <T extends Comparable<T>> void sort(List<T> list, MyComparable comp) { } 然后像这样调用: List<String> list = Arrays.asList("a", "b", "c"); sort(list, (a, b) -> a.compareTo(b)); 它无法编译。它显示 lambda 表达式错误: “目标方法是通用的” 好的,当我使用javac编译它时,它显示以下错误: SO.java:20: error: incompatible types: cannot infer type-variable(s) T#1 sort(list, (a, b) -> a.compareTo(b)); ^ (argument mismatch; invalid functional descriptor for lambda expression method <T#2>(T#2,T#2)int in interface MyComparable is generic) where T#1,T#2 are type-variables: T#1 extends Comparable<T#1> declared in method <T#1>sort(List<T#1>,MyComparable) T#2 extends Comparable<T#2> declared in method <T#2>compare(T#2,T#2) 1 error 从这个错误消息来看,编译器似乎无法推断类型参数。是这样吗?如果是的话,为什么会出现这样的情况? 我尝试了各种方法,通过互联网搜索。然后我发现了这篇JavaCodeGeeks文章,它展示了一种方法,所以我尝试了: sort(list, <T extends Comparable<T>>(a, b) -> a.compareTo(b)); 这又不起作用,与该文章声称的相反。也许它曾经在某些初始版本中工作过。 所以我的问题是:有没有办法为泛型方法创建 lambda 表达式?不过,我可以通过创建方法来使用方法引用来完成此操作: public static <T extends Comparable<T>> int compare(T obj1, T obj2) { return obj1.compareTo(obj2); } 在某些课程中说 SO,并将其传递为: sort(list, SO::compare); 如果功能接口中的方法具有类型参数,则不能将lambda表达式用于功能接口。请参阅 JLS8 中的第 §15.27.3 节: 如果 T 是函数接口类型(第 9.8 节)并且表达式与 [..] T.[ 的函数类型一致,则 lambda 表达式与目标类型 T 兼容 [..]。 .] 如果满足以下所有条件,则 lambda 表达式与函数类型全等 正确: 函数类型有 没有类型参数。 [..] 使用方法引用,我找到了其他方法来传递参数: List<String> list = Arrays.asList("a", "b", "c"); sort(list, Comparable::<String>compareTo); 只需将编译器指向通用比较器的正确版本即可 (Comparator<String>) 所以答案是 sort(list, (Comparator<String>)(a, b) -> a.compareTo(b)); 你的意思是这样的吗?: <T,S>(T t, S s)->... 这个 lambda 是什么类型?您无法在 Java 中表达这一点,因此无法在函数应用程序中编写此表达式,并且表达式必须是可组合的。 为了完成这项工作,您需要 Java 中对 Rank2 Types 的支持。 方法允许是通用的,但因此不能将它们用作表达式。然而,在传递它们之前,可以通过专门化所有必要的泛型类型来将它们简化为 lambda 表达式:ClassName::<TypeName>methodName List<String> list = Arrays.asList("a", "b", "c"); sort(list, Comparable::<String>compareTo); int compareTo (T o) 不是通用方法调用。虽然 Comparable<T> 是一个带有类型的接口。即使 compareTo 返回了 T,即 T compareTo (T o),它仍然不是通用方法。为了使其成为通用方法,它需要包含 type parameters 列表,即 <T> T compareTo (T o)。 lambda 表达式无法声明类型参数,因此它不能具有抽象方法为泛型的目标类型。 在这种情况下,你需要使用方法参考

回答 6 投票 0

无法导入模块“src.main”:将 FastAPI 压缩项目上传到 AWS Lambda 时没有名为“依赖项”的模块

我正在开发一个简单的 FastAPI 应用程序,我想将其部署在 AWS Lambda 上。 这是该项目的结构: 我运行此命令来创建依赖项目录: pip3 安装 -r

回答 1 投票 0

为什么我找不到 Amazon.Lambda.Core?

我是 Amazon Lamba 新手,所以这可能是一个新问题。我已下载并安装了 Amazon SDK,并在 Visual Studio 中创建了一个新项目。 Lamba 编程模型谈论添加

回答 1 投票 0

方法可以访问调用者的局部变量吗?

当报告的数量为一时,我希望我的输出使用单数名词。目前我一直在做这样的事情: logger.debug("得到 {} row{}", rows, rows == 1 ? "" : 's'); 但...

回答 1 投票 0

无法导入模块“main”:将 FastAPI 应用程序部署到 AWS Lambda 时没有名为“pydantic_core._pydantic_core”的模块

我正在按照本教程在我的 MacOS 机器上工作。 我正在尝试将我的 FastAPI 应用程序部署到 AWS Lambda。 我启动了 pip install fastapi uvicorn mangum 这些是我得到的依赖项: 帕克...

回答 1 投票 0

Java中使用lambda定义的类

我对Java中的OOP进行了测试,他们问下面的代码定义了多少个类。 问题是关于此 cod 中的 lambda 表达式。 lambda 表达式启动一个匿名类,但是...

回答 1 投票 0

如何在 LinqWhere() 方法中使用 lambda 表达式变量?

我正在使用表达式对象,例如这里的标准: 公共舱 飞机 { int MaxSpeed { 获取;放; } int 翼展 { 得到;放; } } 表情> 尖叫...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.