Groovy 闭包语法
如果我写
test = {
println("Hello world");
}
That 在名为 test 的变量中创建一个闭包,我可以使用 test();
调用它
,但是
test: {
println("Hello world");
}
立即调用闭包,我无法使用 test 调用它();
第二个语法的目的是什么?
If I write
test = {
println("Hello world");
}
That creates a closure in a variable called test that I can invoke with test();
However
test: {
println("Hello world");
}
Immediately invokes the closure and I cannot invoke it with test();
What is the purpose of the second syntax?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这看起来就像一个普通的旧标记的 java 代码块。不是 Groovy 闭包语法。这将允许您在块内限定局部变量的范围。如果它是替代语法我会避免它。
That looks like a plain old labeled block of java code. Not Groovy closure syntax. Which would just allow you to scope the local variables within the block. If it is an alternative syntax I would avoid it.
这样做时,您不定义闭包,而是标记代码块。
事实上,正如本页所述,Groovy 支持老式标签。
是的。这对我来说也是一个大惊喜。
When doing so, you don't define a closure, but rather label a code block.
Indeed, as this page states, Groovy supports old-school labels.
Yup. it's also a big surprise to me.