Questions tagged «lambda»

不要使用AWS服务(对于这些问题,请使用[aws-lambda]!)Lambda是匿名函数或编程语言(例如Lisp,C#,C ++,Lua,Python,Ruby,JavaScript或Java)中的闭包。(也就是lambda表达式。)

14
Java 8,流查找重复元素
我试图列出整数列表中的重复元素,例如 List<Integer> numbers = Arrays.asList(new Integer[]{1,2,1,3,4,4}); 使用jdk 8的流。有人尝试过吗?要删除重复项,我们可以使用distinct()api。但是,找到重复的元素呢?有人可以帮我吗?

12
函数指针,闭包和Lambda
我现在正在学习函数指针,当我阅读有关该主题的K&R章节时,打动我的第一件事是:“嘿,这有点像闭包。” 我知道这个假设在某种程度上根本上是错误的,并且在网上搜索之后,我没有发现对此比较的任何分析。 那么,为什么C风格的函数指针与闭包或lambda基本不同?据我所知,这与以下事实有关:函数指针仍指向已定义(命名)的函数,而不是匿名定义函数的做法。 为什么在第二种情况下将函数传递给未命名的函数比在第一种情况下传递的只是普通的日常函数更强大? 请告诉我如何以及为什么如此紧密地比较两者是错误的。 谢谢。


4
为什么此Java 8 lambda无法编译?
以下Java代码无法编译: @FunctionalInterface private interface BiConsumer<A, B> { void accept(A a, B b); } private static void takeBiConsumer(BiConsumer<String, String> bc) { } public static void main(String[] args) { takeBiConsumer((String s1, String s2) -> new String("hi")); // OK takeBiConsumer((String s1, String s2) -> "hi"); // Error } 编译器报告: Error:(31, 58) java: incompatible …

6
Java 8 Lambda表达式-嵌套类中的多个方法呢?
我在以下位置阅读有关新功能的信息:http : //www.javaworld.com/article/2078836/java-se/love-and-hate-for-java-8.html 我看到了下面的示例: 使用匿名类: button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { System.out.println("Action Detected"); } }); 使用Lambda: button.addActionListener(e -> { System.out.println("Action Detected"); }); 如果某人MouseListener想要在匿名类中实现多个方法,该怎么办,例如: public void mousePressed(MouseEvent e) { saySomething("Mouse pressed; # of clicks: " + e.getClickCount(), e); } public void mouseReleased(MouseEvent e) { saySomething("Mouse released; # of clicks: …

4
Java 8 Comparator类型推论非常困惑
我一直在研究Collections.sort和之间的区别list.sort,特别是在使用Comparator静态方法以及lambda表达式中是否需要参数类型方面。在开始之前,我知道我可以使用方法引用Song::getTitle来解决问题,例如,这里的查询不是我想要修复的东西,而是我想要解决的东西,即Java编译器为什么以这种方式处理它。 这些是我的发现。假设我们有一个ArrayListtype Song,添加了一些歌曲,有3种标准的get方法: ArrayList<Song> playlist1 = new ArrayList<Song>(); //add some new Song objects playlist.addSong( new Song("Only Girl (In The World)", 235, "Rhianna") ); playlist.addSong( new Song("Thinking of Me", 206, "Olly Murs") ); playlist.addSong( new Song("Raise Your Glass", 202,"P!nk") ); 这是对两种有效的排序方法的调用,没问题: Collections.sort(playlist1, Comparator.comparing(p1 -> p1.getTitle())); playlist1.sort( Comparator.comparing(p1 -> p1.getTitle())); 一旦开始链接thenComparing,就会发生以下情况: Collections.sort(playlist1, …

6
Python的带下划线的lambda参数?
以下代码做什么? a = lambda _:True 根据我在交互式提示中阅读和测试的内容,它似乎是一个始终返回的函数True。 我理解正确吗?我希望理解为什么还要使用下划线(_)。
84 python  lambda 

5
为什么Stream.allMatch()对于空流返回true?
我和我的同事有一个错误,这是由于我们假设allMatch()会返回空流调用而导致的false。 if (myItems.allMatch(i -> i.isValid()) { //do something } 当然,假设和不阅读文档是我们的错。但是我不明白的是为什么allMatch()空流的默认行为会返回true。这是什么原因呢?像anyMatch()(相反地返回false)一样,此操作以命令式使用,它离开了monad,并且可能在if语句中使用了。考虑到这些事实,是否有任何理由使大多数用途都需要allMatch()默认为true空流?

3
是否可以输入提示lambda函数?
当前,在Python中,可以如下提示类型的函数的参数和返回类型: def func(var1: str, var2: str) -> int: return var1.index(var2) 这表示该函数采用两个字符串,并返回一个整数。 但是,此语法与lambda高度混淆,如下所示: func = lambda var1, var2: var1.index(var2) 我试图在参数和返回类型上都添加类型提示,但我想不出一种不会引起语法错误的方法。 是否可以输入提示lambda函数?如果没有,是否有计划使用类型提示lambda,或者有什么原因(除了明显的语法冲突)为何?
83 python  lambda 

3
如何声明一个接受lambda的函数?
我在互联网上阅读了许多教程,这些教程解释了如何在标准库(例如std::find)中使用lambda ,它们都很有趣,但是我找不到任何可以解释如何将lambda用于自己的函数的教程。 例如: int main() { int test = 5; LambdaTest([&](int a) { test += a; }); return EXIT_SUCCESS; } 我该如何申报LambdaTest?它的第一个参数是什么类型?然后,如何调用传递给它的匿名函数-例如,以“ 10”作为参数?
82 c++  lambda  c++11 

10
Java 8:计算lambda迭代次数的首选方法?
我经常遇到同样的问题。我需要计算在Lambda之外使用的Lambda的运行次数。例如: myStream.stream().filter(...).forEach(item->{ ... ; runCount++); System.out.println("The lambda ran "+runCount+"times"); 问题是runCount必须是final,因此不能为int。它不能是整数,因为那是不可变的。我可以将其设置为类级别的变量(即字段),但是在此代码块中只需要它即可。我知道有各种各样的方法,我很好奇您对此的首选解决方案是什么?您是否使用AtomicInteger或数组引用或其他某种方式?

9
Java 8:使用换行符和缩进格式格式化lambda
我想通过lambda缩进实现以下内容: 多行语句: String[] ppl = new String[] { "Karen (F)", "Kevin (M)", "Lee (M)", "Joan (F)", "Des (M)", "Rick (M)" }; List<String> strings = Arrays.stream(ppl) .filter( (x) -> { return x.contains("(M)"); } ).collect(Collectors.toList()); strings.stream().forEach(System.out::println); 单行语句: List<String> strings = Arrays.stream(ppl) .map((x) -> x.toUpperCase()) .filter((x) -> x.contains("(M)")) .collect(Collectors.toList()); 当前,Eclipse将自动格式化为以下格式: 多行语句: String[] ppl …

6
forEach循环Java 8 for Map条目集
我正在尝试将每个循环的旧常规转换到映射条目集的每个循环的java7到java8,但是我遇到了错误。这是我要转换的代码: for (Map.Entry<String, String> entry : map.entrySet()) { System.out.println("Key : " + entry.getKey() + " Value : " + entry.getValue()); } 这是我所做的更改: map.forEach( Map.Entry<String, String> entry -> { System.out.println("Key : " + entry.getKey() + " Value : " + entry.getValue()); }); 我也尝试这样做: Map.Entry<String, String> entry; map.forEach(entry -> { System.out.println("Key : …
82 java  lambda  java-8 


5
Dispatcher.BeginInvoke:无法将lambda转换为System.Delegate
我正在打电话System.Windows.Threading.Dispatcher.BeginInvoke。该方法的签名是这样的: BeginInvoke(Delegate method, params object[] args) 我正在尝试将其传递给Lambda,而不必创建委托。 _dispatcher.BeginInvoke((sender) => { DoSomething(); }, new object[] { this } ); 它给我一个编译器错误,说我 无法将lambda转换为System.Delegate。 委托的签名将对象作为参数并返回void。我的lambda与此匹配,但无法正常工作。我想念什么?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.