groovy - 如何将 bool 值传递给具有变量名的方法

标签 groovy

我有一个这样的方法

def uploadFile(String fileName, boolean performCleanup = false) {
   //upload file
   if (performCleanup == true) {
       //delete local file
   }
}

我用两种方式调用这个方法:

  1. uploadFile("/some/path/to/file.txt")
  2. uploadFile("/some/path/to/file.txt", true)

在第二种情况下,为了更好的可读性,我想传递一个变量名称来表明传递 true 的意义。

类似于,uploadFile("/some/path/to/file.txt", PerformCleanup: true")

这可能吗?

最佳答案

通过引入和额外的闭包,您可以创建一个可读性良好的微型 DSL:

def performCleanup = {
  println "cleanup $it" //delete local file
}
def upload(fileName) {
  println "upload file $fileName" //upload file
  [then: { action ->
    action(fileName)
  }]
}

upload "path"
upload "path" then performCleanup

关于groovy - 如何将 bool 值传递给具有变量名的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38603039/

相关文章:

java - 有什么办法可以解决 Maven 模块中的循环依赖吗?

jenkins - FileNameFinder().getFileNames 在一个 Jenkins 节点上失败

groovy - 了解 Groovy 计数闭包

groovy - 由 Eval 或 GroovyShell 执行时的惰性 GString 评估

groovy - 如何在Groovy中编写此Gradle构建脚本片段?

groovy - 有没有办法将 Javadoc 文档注释附加到 Groovy 脚本?

groovy - 从字符串闭包

java - 为 Java/Groovy 导入文本文件处理库?

java - 如何在groovy(或java)中找到当前的基本执行目录?

javascript - 如何在 Beanshell PostProcessor 中打印 JDBC 请求和响应 header