gpt4 book ai didi

java - 在 Groovy 中的集合上的 .findAll 闭包内进行赋值

转载 作者:行者123 更新时间:2023-12-01 17:06:38 25 4
gpt4 key购买 nike

我在 Groovy 中有一个集合,我在其中使用 .findAll() 来过滤并返回一个较小的集合。假设我有一个 Item 表,我想按它的某些属性进行过滤,例如:

 List<Item> items = Item.list();
items.findAll { it.price > 0 }

假设我添加了我想在该闭包中添加额外的代码,如下所示:

 items.findAll {
int roundedPrice = Math.ceil(it.price);
roundedPrice > 0;
}

根据Groovy docs ,如果闭包返回 true,则闭包将过滤集合。然而,我很好奇的是 roundedPrice 的赋值是否会自行返回“true”。

就代码而言,它可以工作。但是,有谁知道闭包中的作业是否会出现问题?

最佳答案

However, what I'm curious about is whether or not the assignment for roundedPrice will ever return a "true" on its own.

按照你的写法,没有。您可以在闭包中进行任意数量的赋值,并且这些赋值不会直接影响返回值。闭包返回值将是闭包中最后一个表达式的计算结果。如果将赋值作为最后一个表达式,那么只要赋值结果非零,它就会被视为“true”。

As the code stands, it works. However, does anyone know whether or not there will issues down the road with an assignment in a closure?

不,没有理由相信 future 的关闭行为会与现在有任何不同。

关于java - 在 Groovy 中的集合上的 .findAll 闭包内进行赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25275386/

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