Questions tagged «lambda»

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


4
Func <string,string>和委托之间有什么区别?
我看到代表有两种形式: A. Func&lt;string, string&gt; convertMethod = lambda B. public delegate string convertMethod(string value); 我不确定这两者之间到底有什么区别。他们都是代表吗?我相信第一个将使用lambda,第二个将必须具有实际执行工作的方法。我可能也会感到困惑。
79 c#  asp.net  delegates  lambda 


3
有没有办法比较lambda?
说我有一个使用lambda表达式(闭包)定义的对象列表。有没有一种方法可以检查它们以便进行比较? 我最感兴趣的代码是 List&lt;Strategy&gt; strategies = getStrategies(); Strategy a = (Strategy) this::a; if (strategies.contains(a)) { // ... 完整的代码是 import java.util.Arrays; import java.util.List; public class ClosureEqualsMain { interface Strategy { void invoke(/*args*/); default boolean equals(Object o) { // doesn't compile return Closures.equals(this, o); } } public void a() { } public void …
78 java  lambda  java-8 

1
在未先将其转换为委托或表达式树类型的情况下,无法将lambda表达式用作动态调度的操作的参数
我正在使用.NET4.5和VS2013,我有dynamic从数据库获取结果的查询。 dynamic topAgents = this._dataContext.Sql( "select t.create_user_id as \"User\", sum(t.netamount) as \"Amount\" from transactiondetail t where t.update_date &gt; sysdate -7 group by t.create_user_id") .QueryMany&lt;dynamic&gt;(); 以下语句由于编译错误Cannot use a lambda expression as an argument to a dynamically dispatched operation without first casting it to a delegate or expression tree type 而失败,甚至没有允许我运行它 topAgents.ToList().Select(agent …
78 c#  linq  lambda  .net-4.5 

5
python中合适的“什么都不做” lambda表达式?
有时我发现自己想让占位符“不做任何事情” lambda表达式,类似于说: def do_nothing(*args): pass 但是以下语法是非法的,因为lambda表达式试图返回冒号之后的任何内容,而您不能返回pass。 do_nothing = lambda *args: pass 所以我想知道,下面的表达式是否可以替代上面的表达式? do_nothing = lambda *args: None 由于上述do_nothing函数从技术上讲会返回None,是否可以制作一个lambda表达式None以用作占位符lambda表达式?还是不好的做法?
77 python  lambda 

3
Collectors.toMap()keyMapper —更简洁的表达吗?
我正在尝试在以下Collectors.toMap()调用中为“ keyMapper”函数参数提供一个更简洁的表达式: List&lt;Person&gt; roster = ...; Map&lt;String, Person&gt; map = roster .stream() .collect( Collectors.toMap( new Function&lt;Person, String&gt;() { public String apply(Person p) { return p.getLast(); } }, Function.&lt;Person&gt;identity())); 看来我应该能够使用lambda表达式内联它,但是我无法提出一个可以编译的表达式。(我对lambda很陌生,所以这并不奇怪。) 谢谢。 -&gt;更新: 如已接受的答案中所述 Person::getLast 是我一直在寻找的东西,也是我尝试过的东西。但是,问题是夜间出现的Eclipse 4.3的BETA_8夜间构建-标记为错误。从命令行编译时(我应该在发布之前完成该工作)。因此,该到eclipse.org提交错误了。 谢谢。

2
如何调用作为类变量的闭包?
class MyClass { var $lambda; function __construct() { $this-&gt;lambda = function() {echo 'hello world';}; // no errors here, so I assume that this is legal } } $myInstance = new MyClass(); $myInstance-&gt;lambda(); //Fatal error: Call to undefined method MyClass::lambda() 那么达到类变量的正确语法是什么?


3
为什么有时不需要在lambda中捕获const变量?
考虑以下示例: #include &lt;cstdlib&gt; int main() { const int m = 42; [] { m; }(); // OK const int n = std::rand(); [] { n; }(); // error: 'n' is not captured } 为什么我需要n在第二个Lambda中捕获而不是m在第一个Lambda中捕获?我检查了C ++ 14标准中的5.1.2节(Lambda表达式),但找不到原因。您能指出我对此段的解释吗? 更新:我在GCC 6.3.1和7(主干)中都观察到了此行为。在这两种情况下(variable 'm' cannot be implicitly captured in a lambda with no capture-default specified),Clang …


10
如何获取Java 8方法参考的MethodInfo?
请看下面的代码: Method methodInfo = MyClass.class.getMethod("myMethod"); 此方法有效,但是方法名称作为字符串传递,因此即使myMethod不存在,也可以编译。 另一方面,Java 8引入了方法引用功能。在编译时检查它。可以使用此功能获取方法信息吗? printMethodName(MyClass::myMethod); 完整示例: @FunctionalInterface private interface Action { void invoke(); } private static class MyClass { public static void myMethod() { } } private static void printMethodName(Action action) { } public static void main(String[] args) throws NoSuchMethodException { // This works, but method …

2
Find()和First()抛出异常,如何返回null?
搜索列表时,是否有一个linq lambda搜索方法返回null,而不是引发异常? 我当前的解决方案是这样的:(以避免引发异常) if (list.Exists(x =&gt; x.Foo == Foo)) { var listItem = list.Find(x =&gt; x.Foo == Foo); } 重复表达只是感觉不对。 就像是 ... var listItem = list.Find(x =&gt; x.Foo == Foo); if (listItem != null) { //Do stuff } ...对我来说感觉更好。还是只是我? 您对此有更好的方法吗?(解决方案不必返回null,只有更好的解决方案才是好的)
76 c#  .net  linq  lambda 

3
使用Lambda表达式代替IComparer参数
C#是否可以在方法调用中将Lambda表达式作为IComparer参数传递? 例如类似 var x = someIEnumerable.OrderBy(aClass e =&gt; e.someProperty, (aClass x, aClass y) =&gt; x.someProperty &gt; y.SomeProperty ? 1 : x.someProperty &lt; y.SomeProperty ? -1 : 0); 我不能完全编译它,所以我猜不是,但是在lambda和匿名委托之间似乎有如此明显的协同作用,我觉得我一定做错了。 TIA
76 c#  lambda  icomparer 

2
Python Lambda绑定到本地值
下面的代码吐出了1两次,但是我希望看到0,然后1。 def pv(v) : print v x = [] for v in range(2): x.append(lambda : pv(v)) for xx in x: xx() 我期望python lambdas可以在后台绑定到本地变量指向的引用。但是,事实并非如此。我在大型系统中遇到了这个问题,其中lambda正在做现代C ++的bind等效操作(例如'boost :: bind'),在这种情况下,您将绑定到智能ptr或copy构造lambda的副本。 那么,如何将局部变量绑定到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.