什么符号 -> 在 spock 框架中意味着什么?

What sign -> means in spock framework?

谁能解释一下在 spock 框架中 sign -> 是什么意思?

例如我们有如下代码:

given:
    UserService service = Stub()
    service.save({ User user -> 'Michael' == user.name }) >> {
        throw new IllegalArgumentException("We don't want you here, Micheal!")
    }

我知道这段代码是做什么的,但我不知道这段代码中的角色是如何有符号 -> 的。

Spock 框架假定对 Groovy 语言有基本的理解,有时会出现 Groovy 更复杂的部分(如您的示例)。

-> 表示 闭包,如 Groovy documentation 中所述。

例如,Groovy 中的闭包可能如下所示:

def greeting = "Hello"
def sayHiTo = { name -> greeting + " " + name }
println sayHiTo("user3664097")