EveryWithIndex groovy声明

EveryWithIndex groovy声明,第1张

概述我是新来的,我一直在面对一些问题,了解每个{}和eachwithindex {}语句。 每个和每个WInIndex实际上是方法吗?如果是这样,他们有什么论据呢? 在groovy文档中有一些这样的例子: def numbers = [ 5, 7, 9, 12 ]numbers.eachWithIndex{ num, idx -> println "$idx: $num" } //prints ea 我是新来的,我一直在面对一些问题,了解每个{}和eachwithindex {}语句。

每个和每个WInIndex实际上是方法吗?如果是这样,他们有什么论据呢?

在groovy文档中有一些这样的例子:

def numbers = [ 5,7,9,12 ]numbers.eachWithIndex{ num,IDx -> println "$IDx: $num" } //prints each index and number

那我知道这个数字是一个数组。上述语句中的num和IDx是什么?什么是 – >运算符做?

我知道$ IDx和$ num打印值,但是IDx和num如何自动与数组的索引和内容相关联?这背后的逻辑是什么?请帮忙。

解决方法 这些是简单的方法,但它们遵循一个特定的模式 – 他们将Closure作为最后一个参数。关闭是一种功能,您可以在适用时传递和呼叫。

例如,eachWithIndex可能看起来像这样(大致):

voID eachWithIndex(Closure operation) {    for (int i = 0; this.hasNext(); i++) {        operation(this.next(),i); // Here closure passed as parameter is being called    }}

这种方法允许构建通用算法(如在项目上迭代),并通过传递不同的闭包来在运行时改变具体的处理逻辑。

关于参数部分,如上例所示,我们使用两个参数(当前元素和当前索引)来调用闭包(operation)。这意味着eachWithIndex方法期望不仅接收任何封闭,而且接收这两个参数。从语法前景来定义闭包定义中的参数,如下所示:

{ elem,index ->    // logic }

所以 – >用于将闭包定义的一部分与其逻辑分开。当一个闭包只有一个参数时,它的参数定义可以省略,然后该参数可以在闭包的范围内被访问,其名称为(第一个参数的隐含名称)。例如:

[1,2,3].each {    println it}

它可以这样重写:

[1,3].each({ elem ->    println elem})

当您看到Groovy语言添加了一些语法糖,使这样的结构看起来更漂亮。

总结

以上是内存溢出为你收集整理的EveryWithIndex groovy声明全部内容,希望文章能够帮你解决EveryWithIndex groovy声明所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/langs/1249023.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存