gpt4 book ai didi

java - lambda 表达式中变量名的约定是什么?

转载 作者:搜寻专家 更新时间:2023-10-30 19:57:50 25 4
gpt4 key购买 nike

<分区>

我看到很多例子,例如

int sum = widgets.stream()
.filter(w -> w.getColor() == RED)
.mapToInt(w -> w.getWeight())
.sum();

我们可以在这些 lambda 表达式中使用任何变量名吗?

我认为变量名有约定,最好使用专有名称以提高可读性。

例如,如果我在 pre-java8 中使用 w 作为 Widget,代码将因为不可读而被回避。随着 Java 8 的出现,发生了什么变化?

   for(Widget w : widgets)
{
if(w.getColor() == RED) {
sum += w.getWeight();
}
}

为什么代码不能这样写:

int sum = widgets.stream()
.filter(widget -> widget.getColor() == RED)
.mapToInt(widget -> widget.getWeight())
.sum();

也许上面的代码是在做一些直截了当的事情,而且只针对小部件列表中的小部件。所以,还有更多:

哪个可读性更好:

    return  requestHolder.getRequests()
.stream()
.map(request -> request.getErrorHolder())
.flatMap(errorData -> errorData.getErrors().stream())
.collect(toList());

    return  requestHolder.getRequests()
.stream()
.map(t -> t.getErrorHolder())
.flatMap(r -> r.getErrors().stream())
.collect(toList());

也许我遗漏了什么。你能解释一下吗?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com