为什么这不起作用?
lambda: print "x"
Run Code Online (Sandbox Code Playgroud)
这不是一个单一的陈述,还是别的什么?关于lambda中允许的内容,文档似乎有点稀疏......
我来自OOP背景并试图学习python.我使用的max函数使用lambda表达式返回列表中Player具有最大值的类型的实例.totalScoreplayers
def winner():
w = max(players, key=lambda p: p.totalScore)
Run Code Online (Sandbox Code Playgroud)
该函数正确返回Player具有最大值的类型的实例totalScore.我对以下三件事感到困惑:
max功能如何运作?它正在采取什么样的论据?我查看了文档,但没有理解.keymax函数中关键字的用途是什么?我知道它也用在sort功能的上下文中这些都是非常无趣的概念性问题,但会帮助我理解语言.如果您可以举例解释,这将有所帮助.谢谢
我正在使用java lambda对列表进行排序.
我怎样才能以相反的方式对它进行排序?
我看到这篇文章,但我想使用java 8 lambda.
这是我的代码(我使用*-1)作为黑客
Arrays.asList(files).stream()
.filter(file -> isNameLikeBaseLine(file, baseLineFile.getName()))
.sorted(new Comparator<File>() {
public int compare(File o1, File o2) {
int answer;
if (o1.lastModified() == o2.lastModified()) {
answer = 0;
} else if (o1.lastModified() > o2.lastModified()) {
answer = 1;
} else {
answer = -1;
}
return -1 * answer;
}
})
.skip(numOfNewestToLeave)
.forEach(item -> item.delete());
Run Code Online (Sandbox Code Playgroud) 我怎样才能优雅地序列化lambda?
例如,下面的代码抛出一个NotSerializableException.如何在不创建SerializableRunnable"虚拟"界面的情况下修复它?
public static void main(String[] args) throws Exception {
File file = Files.createTempFile("lambda", "ser").toFile();
try (ObjectOutput oo = new ObjectOutputStream(new FileOutputStream(file))) {
Runnable r = () -> System.out.println("Can I be serialized?");
oo.writeObject(r);
}
try (ObjectInput oi = new ObjectInputStream(new FileInputStream(file))) {
Runnable r = (Runnable) oi.readObject();
r.run();
}
}
Run Code Online (Sandbox Code Playgroud) 是否可以通过lambda表达式中的const引用进行捕获?
我希望下面标记的作业失败,例如:
#include <cstdlib>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
string strings[] =
{
"hello",
"world"
};
static const size_t num_strings = sizeof(strings)/sizeof(strings[0]);
string best_string = "foo";
for_each( &strings[0], &strings[num_strings], [&best_string](const string& s)
{
best_string = s; // this should fail
}
);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
更新:由于这是一个老问题,如果C++ 14中有设施来帮助解决这个问题,那么更新它可能会更好.C++ 14中的扩展是否允许我们通过const引用捕获非const对象?(2015年8月)
我有这个问题:
int maxShoeSize = Workers
.Where(x => x.CompanyId == 8)
.Max(x => x.ShoeSize);
Run Code Online (Sandbox Code Playgroud)
maxShoeSize如果公司8根本没有工人,那将会是什么?
更新:
如何更改查询以获得0而不是异常?
在Python中,我试图用lambda按日期排序.我无法理解我的错误信息.消息是:
<lambda>() takes exactly 1 argument (2 given)
Run Code Online (Sandbox Code Playgroud)
我的路线是
a = sorted(a, lambda x: x.modified, reverse=True)
Run Code Online (Sandbox Code Playgroud) 我有一个对象列表说car.我想基于使用Java 8的一些参数来过滤此列表.但是如果参数是null,它会抛出NullPointerException.如何过滤掉空值?
目前的代码如下
requiredCars = cars.stream().filter(c -> c.getName().startsWith("M"));
Run Code Online (Sandbox Code Playgroud)
NullPointerException如果getName()返回则抛出null.
我在Java 8中遇到了一个名为Functional Interface的新术语.
在使用lambda表达式时,我只能找到一个使用此接口的方法.
Java 8提供了一些内置的功能接口,如果我们想要定义任何功能接口,那么我们就可以使用@FunctionalInterface注释.它允许我们在接口中只声明一个方法.
例如:
@FunctionalInterface
interface MathOperation {
int operation(int a, int b);
}
Run Code Online (Sandbox Code Playgroud)
除了使用lambda表达式之外,它在Java 8中有多大用处?
这里的问题与我提出的问题不同.在使用Lambda表达式时,它询问为什么我们需要功能接口.我的问题是:为什么使用功能接口而不是直接使用lambda表达式?
我有以下代码:
return this.ObjectContext.BranchCostDetails.Where(
b => b.TarrifId == tariffId && b.Diameter == diameter
|| (b.TarrifId==tariffId && !string.IsNullOrWhiteSpace(b.Diameter))
|| (!b.TarrifId.HasValue) && b.Diameter==diameter);
Run Code Online (Sandbox Code Playgroud)
当我尝试运行代码时出现此错误:
LINQ to Entities无法识别方法'Boolean IsNullOrWhiteSpace(System.String)'方法,并且此方法无法转换为商店表达式."
如何解决这个问题并编写代码比这更好?