gpt4 book ai didi

groovy - 空闭包的 Groovy 真相是什么?

转载 作者:行者123 更新时间:2023-12-02 07:26:56 25 4
gpt4 key购买 nike

我正试图预测这段代码在 Groovy 中的行为

userList.find { }

.find documentation

find 方法被调用并传递一个闭包时,它返回第一个评估闭包的元素,使 Groovies 理解 true。当调用 find 方法时不带任何参数,它会根据 Groovy truth 返回列表中匹配 true 的第一个对象。

如果使用空闭包会怎样?

  1. 它会评估为真并因此返回列表的第一个元素吗?
  2. 它是否总是求值为 false 并在遍历列表后返回 null
  3. 它的行为会像 .find() 吗?

最佳答案

来自Groovy Closures Formal Definition ( Alternative Source ):

Closures always have a return value. The value may be specified via one or more explicit return statement in the closure body, or as the value of the last executed statement if return is not explicitly specified. If the last executed statement has no value (for example, if the last statement is a call to a void method), then null is returned.

来自Groovy Truth

Object references
Non-null object references are coerced to true.
...

assert !null

这对我来说意味着空闭包的返回值总是假的,所以 find 永远找不到任何东西,因此可能会返回 null

关于groovy - 空闭包的 Groovy 真相是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27168514/

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