groovy - 这两个 groovy 调用如何相同?
问题描述
我试图了解如何调用定义为的 groovy 方法:
Number.upto(Number to, Closure closure)
似乎可以通过以下两种方式调用相同的方法:
1.upto(10, {item -> println(item)})
1.upto(10) {item -> println item}
第一个方法调用将 anumber
作为第一个参数,将 aclosure
作为第二个参数。这与方法定义相匹配。然而,第二个方法调用只需要一个参数,该参数恰好是一个数字。
第二种方法调用如何工作?
解决方案
第二种方法调用如何工作?
1.upto(10) {item -> println item}
该方法调用有效,因为该upto
方法接受 2 个参数。第一个参数是 a Number
,第二个参数是 a Closure
。将Closure
文字作为最终参数传递给方法时,Groovy 允许Closure
在括号之外定义文字以提高可读性。
以下相同...
def someClosure = { ... }
4.times(someClosure)
4.times {
...
}
4.times({
...
})
4.times() {
...
}
推荐阅读
- angular - 表单组控件:无法读取未定义的属性“值”
- c++ - GLFW 和 GLEW 未显示红色三角形
- python - Flask-jwt 已安装,但显示未找到/未安装
- python - 新行作为python中的分隔符
- java - 如何平衡二叉搜索树与递归
- django - 我应该如何使用 restframework-simple-JWT 实现电子邮件验证?
- java - > 找不到匹配的构造函数:com.android.build.gradle.internal.pipeline.TransformManager
- java - 与数据库的连接在计划任务上失败
- android - 应用程序安装失败:INSTALL_PRASE_FAILED_NO_CERTIFICATES
- postgresql - PostgreSQL DROP COLUMN:删除表的一列或多列