gpt4 book ai didi

groovy - 了解 Groovy 计数闭包

转载 作者:行者123 更新时间:2023-12-04 16:32:27 26 4
gpt4 key购买 nike

我刚开始使用 Groovy,虽然最终在 Java 环境中使用闭包令人耳目一新,但我在让 count 按我想要的方式工作时遇到了问题。

假设我有一个看起来像这样的类 Foo:

public class Foo {

private boolean isBar;

public boolean isBar() {
return isBar;
}

public boolean setIsBar(boolean isBar) {
this.isBar = isBar;
}

}

现在假设我有一个 ListFoo 实例,我想计算 isBar 处的 Foo 对象的数量 是真的。我期待它看起来像这样:

foos.count { it.isBar() }

或者使用属性符号,简单地:

foos.count { it.bar }

然而,这并没有返回预期的结果,它只返回 0。

我试着用一个简单的 List 来测试它。要计算 2 的出现次数,我可以这样做:

[1, 2, 2, 3].count(2)

但我不应该使用闭包来执行以下操作吗?

[1, 2, 2, 3].count { it == 2 }

后者似乎也没有返回预期的结果。我所做的研究似乎表明我所做的是正确的,但显然不是。正确的使用方法是什么?

最佳答案

根据Groovy JDK Collection#count(Closure) 直到 1.8.0 才被添加。您可以尝试 #sum 代替:

assert [1, 2, 2, 3].sum() { it == 2? 1 : 0 } == 2

关于groovy - 了解 Groovy 计数闭包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11942349/

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