加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Groovy中的任何方法如何工作?

发布时间:2020-12-14 16:33:47 所属栏目:大数据 来源:网络整理
导读:我遇到了这段代码: n = args[0] as Long[*n..1,n].any{ println ' '*it + '*'*(n - ~n - it*2) } 它用于打印树形结构.像这样: * *** ***** ******* * (对于n = 4) 代码[* n..1,n]如何产生[4,3,2,1,4]? 这里的方法如何运作? Doc对我帮助不大.什么是可以传
我遇到了这段代码:

n = args[0] as Long
[*n..1,n].any{ println ' '*it + '*'*(n - ~n - it*2) }

它用于打印树形结构.像这样:

*
   ***
  *****
 *******
    *

(对于n = 4)

>代码[* n..1,n]如何产生[4,3,2,1,4]?
>这里的方法如何运作? Doc对我帮助不大.什么是可以传递给任何人的预测(如Doc所述)?

什么是使用任何以及在这种情况下如何处理?

解决方法

Q1a:*“解包”一个数组. ..创造一个范围. []创建一个集合.
Q1b:* n..1将[4,1]解包到各个部分.
Q1c:[4,n] == [4,4]

Q2:我不知道为什么在这里使用了它;每个都工作得很好,在上下文中更有意义. any会循环连接,因此println副作用按预期运行.

通常,任何集合都将用于确定是否有任何集合元素符合条件,例如:

[*n..1,n].any { it > 10 } // Returns false,no elements are > 10
[*n..1,n].any { it == 3 } // Returns true,because at least one element is 3

关闭的最后一个陈述用于确定每个项目是否符合标准. println返回null,因此任何都将返回false.该值未使用并被丢弃.

我能想到有人可能使用过任何一个的唯一原因是避免在控制台中看到每个人的返回值.每个都返回原始集合.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读