带有可选参数的 Groovy 闭包

2023-12-23

我想定义一个带有一个参数的闭包(我用it) 有时我想向闭包传递另一个附加参数。 我怎样才能做到这一点?


您可以将第二个参数设置为默认值(例如 null):

def cl = { a, b=null ->
  if( b != null ) {
    print "Passed $b then "
  }
  println "Called with $a"
}

cl( 'Tim' )          // prints 'Called with Tim'
cl( 'Tim', 'Yates' ) // prints 'Passed Yates then Called with Tim

另一种选择是使b像这样的 vararg 列表:

def cl = { a, ...b ->
  if( b ) {
    print "Passed $b then "
  }
  println "Called with $a"
}

cl( 'Tim' )                    // prints 'Called with Tim'
cl( 'Tim', 'Yates' )           // prints 'Passed [Yates] then Called with Tim
cl( 'Tim', 'Yates', 'Groovy' ) // prints 'Passed [Yates, Groovy] then Called with Tim
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带有可选参数的 Groovy 闭包 的相关文章

  • Spring Boot 开发工具 IntelliJ

    我正在使用 Spring Boot 1 3 0 M5 并且我正在尝试利用 devtools 这允许您在开发过程中对应用程序进行更改 并且启动将重新加载您的应用程序 我已经看到这个演示使用 Java 和 Maven 在 STS 中工作 我正在
  • Java 8 可选

    我想检查特定对象大小是否大于 0 如果它大于 0 那么我想创建一个可选对象 如果不是 那么我想返回一个可选的空对象 这是java代码的长版本 if fooA size gt 0 return Optional of new Foo else
  • 为 SpecFlow 场景提供多个 When 语句

    对 SpecFlow 还很陌生 所以请耐心等待 我正在与一位同事合作 以基本了解 SpecFlow 的功能 我们使用经典的 FizzBu zz 问题 我们用它来测试单元测试 以比较我们如何在 SpecFlow 中解决类似问题 我们将场景编写
  • 在闭包上下文中 for 循环内声明的 let 变量的行为

    在下面的代码片段中 函数传递给setTimeout与变量形成闭包i这是存在于script范围 所以该函数包含一个参考到变量i 的价值i之前更新为5i已记录到控制台 输出是 5 5 5 5 5 带换行符 script js let i for
  • 向 Apache HttpPost 添加参数

    我正在尝试将文件发送到 Servlet 除了这个文件之外 我还必须发送一些参数 即名称 ID 日期和其他一些参数 我在客户端使用 HttpClient 在服务器端使用 ServerFileUpload 这是客户端代码 String url
  • 如何将参数传递到 eclipse-plugin 中的代码模板

    我想创建一个定义新代码模板的插件 喜欢这篇博文 http thomaswabner wordpress com 2009 08 21 use your own variable in eclipse code templates 如何将参数
  • Gradle:从另一个插件添加插件依赖项

    我正在创建 gradle 自定义插件 我的任务之一需要确保另一个插件应用于同一项目 因为它将在其之上运行 我希望我的插件的用户避免设置对另一个插件的显式依赖 我想在我的插件中执行此操作 所以 我想要这个插件 https plugins gr
  • (Python) 我应该使用参数还是将其设为全局参数? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我有许多共享相同参数的函数 他们将多次输入和输出该参数 例如 a foo a fun a a bar a def fun a return a
  • 在 mule 中使用 groovy 表达式来限制 IP

    我在 mule 中使用 cxf 创建了一个代理服务 我的 mule 版本是 3 3 0 CE 现在 我想在使用代理服务创建的 wsdl 中添加限制 我的限制不应允许他们看到我的 wsdl 的每个 IP 为此 我找到了 Groovy 表达式和
  • Groovy:验证 JSON 字符串

    我需要检查 Groovy 中的字符串是否为有效的 JSON 我的第一个想法就是把它发送出去new JsonSlurper parseText myString 并且 如果没有例外 就假设它是正确的 然而 我发现 Groovy 很乐意接受尾随
  • Groovy 中的显式输入:有时还是从不?

    后来 仍然无法弄清楚 Groovy 是否具有静态类型 似乎没有 或者使用显式类型生成的字节码是否不同 似乎是 无论如何 回答这个问题 One of the main differences between Groovy and other
  • Groovy List> 的行为类似于 List

    我在生产代码中发现了一个铸造List
  • SqlCommand 参数与 String.Format [重复]

    这个问题在这里已经有答案了 我一直在互联网上搜索 但似乎找不到任何可以解释我的问题的内容 可能是我没有使用正确的搜索字符串 所以我在这里发帖希望有人可以帮助我有了这个 我的程序是使用Visual Studio 2010用C 编写的 我注意到
  • 如何在 Angular @Input 中仅接受预定义值

    我的问题是 我在 a 中收到一个字符串值作为组件的参数 但我想限制可以用作参数的值 就像enum I use Input type string 但是在组件中 一切都可以引入type正如我之前所说 我需要将其限制为 3 个选项 例如Enum
  • 无法在 Intellij 上创建 Groove 脚本 - @NotNull 参数的参数

    我正在尝试开始学习 Groovy 以便在 JIRA 上使用 ScriptRunner 执行 API 调用 所以我从基础开始 我的问题是我什至无法使用 Intellij 创建 Groovy 脚本 在项目创建时它选择Groovy并选择项目SDK
  • php 数组中出现意外的 json 输出结构

    我正在尝试转换动态数据 如何从 PHP 获取此 JSON JSON 122240cb 253c 4046 adcd ae81266709a6 item 0 3 这就是我所做的 但它不起作用 PHP json array 122240cb 2
  • “实际或正式的参数列表长度不同”

    当我尝试将某些内容放入 括号中时Friends f new Friends friendsName friendsAge 它出现错误 Friends 类中的构造函数 Friends 不能应用于给定类型 必需 无参数 发现 字符串 整数 原因
  • $0 和 $1 在 Swift 闭包中意味着什么?

    let sortedNumbers numbers sort 0 gt 1 print sortedNumbers 谁能解释一下什么 0 and 1在斯威夫特中意味着什么 另一个样本 array forEach actions append
  • 使用带有关键字参数的 map() 函数

    这是我尝试使用的循环map功能于 volume ids 1 2 3 4 5 ip 172 12 13 122 for volume id in volume ids my function volume id ip ip 我有办法做到这一点
  • Google BQ:运行参数化查询,其中参数变量是 BQ 表目标

    我正在尝试从 Linux 命令行为 BQ 表目标运行 SQL 此 SQL 脚本将用于多个日期 客户端和 BQ 表目标 因此这需要在我的 BQ API 命令行调用中使用参数 标志 parameter 现在 我已经点击此链接来了解参数化查询 h

随机推荐

  • C++ 不会安装在 Netbeans 11.0 中

    我是编程初学者 想了解更多关于 C 的知识 我安装了 Netbeans 因为它说它支持 Java 我目前正在学校学习基础知识 和 C 我想出于个人兴趣学习 但是当我尝试创建一个新项目时 我找不到C 所以我按照教程并最终尝试安装该插件 问题是
  • 什么时候在 ThreadPoolExecutor 中指定单独的核心和最大池大小是个好主意?

    我试图理解为 Java 5 的 ThreadPoolExecutor 指定单独的核心和最大池大小的要点 我的理解是 线程数只有在队列已满时才会增加 这似乎有点晚了 至少对于较大的队列 难道我不乐意为任务分配更多数量的线程 在这种情况下我可能
  • 迷失在 NSButton 类型和替代图像中

    我想要一个NSButton带有图像和备用图像 按下按钮时应显示备用图像 我还想通过代码显示备用图像 调用类似 button setSelected YES 这是否可能无需与alternateImage用手财产 无需手动更改按钮的图像即可实现
  • Java:使用 SAXParser 拆分大型 XML 文件

    我正在尝试使用java将一个大的XML文件分割成更小的文件SAXParser 特别是维基百科转储 未压缩时大约有 28GB 我有一个Pagehandler扩展的类DefaultHandler private class PageHandle
  • 在Python中对两个文本文件进行类似SQL的JOIN,有内置的方法吗?

    我必须执行的一项常见任务是对两个文本文件执行类似 SQL 的 JOIN 即 使用在它们之间共享的标识符列上的某种联接 从 左手 和 右手 文件创建一个新文件 有时需要诸如外连接等变化 当然 我可以编写一个简单的脚本来以通用方式执行此操作 但
  • 时间序列预测(最终使用Python)[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 What algorithms exist for time series forecasting r
  • 使用 Perl 使用 sendmail 发送电子邮件

    我正在遵循以下示例这个网站 http www tutorialspoint com perl perl sending email htm使用 Perl 发送电子邮件 代码看起来像这样 my hostname hostname my thi
  • Prometheus 中的increase() 有时会将值加倍:如何避免?

    我发现对于某些图表 我从 Prometheus 获得双精度值 其中应该只是一个 我使用的查询 increase signups count 4m 刮擦间隔设置为建议最大 https stackoverflow com questions 4
  • Zend_Search_Lucene 与 SOLR

    我最近偶然发现了 Lucene 项目的 Zend Lucene 端口 我对 SOLR 有一点经验 所以我想知道它们两者之间有什么区别 特别是从性能和安装方面来看 据我所知 SOLR 需要在 Web 托管中运行 Tomcat serverle
  • XCode 调试器停止并在“停止”按钮上显示 SIGKILL

    我在 MacOS Lion 上使用 XCode 4 2 在模拟器中调试 iPhone iPad 应用程序时 我使用 XCode 工具栏上的 停止 按钮 产品 停止 来退出应用程序 此后 XCode 通常会打开 main m 文件 将执行指针
  • 如何获取DataTables中的页数

    我正在与数据表 http datatables net index我需要知道表当前包含的页数 这当然取决于每页的行数和总行数 并且可能会因用户操作而改变 有人知道如何访问这个值吗 我相信 iTotalPages 就是您所追求的 http d
  • 如何在 Julia 中将 Float64 矩阵转换为 RGB 通道矩阵?

    假设我有以下矩阵 img 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
  • 随机化字符串[重复]

    这个问题在这里已经有答案了 我是 C 新手 所以不要因为我的愚蠢而责怪我 我正在开发一个应用程序 该应用程序应该随机化一个单词并给出它的长度 例如您写一个单词 Line 它会给您 iLen 目前我确信只有这部分有效 private void
  • 单元测试中的序列化异常

    我的 Visual Studio 2010 单元测试遇到问题 每当出现问题并抛出一种类型的异常时 UnitTestAdapter 就会抛出 SerializationExceptions 告诉我他无法反序列化抛出的异常 在我创建的单元测试中
  • 如何获取使用 asp .net 检查的 gridview 内的复选框的值

    我在 gridview 中使用复选框 我在第一个单元格中使用它 当我在运行时选择复选框时 我需要获取这些值 但是在选择或单击复选框时 它不是查找或值取为 FALSE 如何在 asp net 后端和 C 代码中编写
  • git 错误:无法将一些引用推送到远程

    我现在无法推动 尽管昨天我可以做到 当我使用git push origin master 我收到错误 git remote v origin https github com REDACTED git fetch origin https
  • 我们到底为什么要使用NoSQL? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 了解了 NoSQL 提供的一些优势 可扩展性 可用性等 后 我仍然不清楚为什么网站想要使用非关系数据库 我可以在这方面获得一些帮助 最好是有一个
  • 在具有日期时间索引的行之间执行计算并将它们放入新列中

    我有一个数据框 由这段代码生成 import pandas as pd import datetime as dt datarange pd date range 01 05 2018 00 00 00 periods 50 freq 4H
  • 当窗口打开时,window.close = true 如何?

    我正在单步执行代码 我意识到我无法关闭窗口 因为 DispHTMLWindow2 对象 close 属性仍然为 true if winObject closed true winObject close 问题是winObject close
  • 带有可选参数的 Groovy 闭包

    我想定义一个带有一个参数的闭包 我用it 有时我想向闭包传递另一个附加参数 我怎样才能做到这一点 您可以将第二个参数设置为默认值 例如 null def cl a b null gt if b null print Passed b the