groovy - 了解一个小型 groovy 脚本
问题描述
我对 groovy 完全陌生,我正在尝试了解现有的 groovy 代码以进行更改。该代码是一个像这样的小型 groovy 脚本:
package myapp.confg
appName = "myapp"
appVersion = "103"
tags {
ags = "${myapp}"
}
我理解这一点,appName
并且appVersion
是全局变量。但是我无法理解是什么tags
。它不是闭包,也不是地图。任何想法这可能是什么?它是创建命名范围的某种方式吗?如何ags
从范围之外访问 的值tags
?
解决方案
这可以是最后一个参数中带有闭包的方法,这在 Groovy 中很常见,将方法中的最后一个参数用作 a Closure
,这对于构建 DSL(委托...)非常方便,如下所示:
// Example 1
def t(Closure c){
println('from Closure')
}
t {
// do something
}
// Example 2
def t2(int i, int j, Closure c){
print("closure with: $i, $j")
}
t2(1,2) {
// do other something
}
更多示例可以在委派文档中找到。
推荐阅读
- angular - 如何从数组中只获取一个元素
- python - django url_for 等效
- laravel - 如何刷新/重置模型以使其再次变为新模型
- python - 将相同的 TensorFlow 损失函数复制到 Keras 时的不同行为
- javascript - 如何在 Javascript 中为多个(但不是全部)导入设置别名?
- java - 使用 sed 删除变量名中的 _
- azure - 无法启动处于可用状态的 Azure 虚拟机
- d3.js - D3js 从 GeoJSON 生成路径
- python - Python解释器输出到变量
- apache-spark - 如何使用 Cassandra 键空间创建火花数据框?