Groovy的隐藏功能?

Groovy似乎在这个线程中被遗忘了,所以我只会对Groovy提出同样的问题。

  • 尝试限制对Groovy核心的回答
  • 每个答案一个功能
  • 给出一个示例和功能的简短描述,而不仅仅是文档的链接
  • 作为第一行使用粗体标题标记该功能
  • 也可以看看:

  • Python的隐藏功能
  • Ruby的隐藏功能
  • Perl的隐藏功能
  • Java的隐藏功能

  • 使用散点算子

    def animals = ['ant', 'buffalo', 'canary', 'dog']
    assert animals.size() == 4
    assert animals*.size() == [3, 7, 6, 3]
    

    这是animals.collect { it.size() }的快捷方式。


    with方法允许变成这样:

     myObj1.setValue(10)
     otherObj.setTitle(myObj1.getName())
     myObj1.setMode(Obj1.MODE_NORMAL)
    

    进入这个

     myObj1.with {
        value = 10
        otherObj.title = name
        mode = MODE_NORMAL
     }
    

    使用散列作为伪对象。

    def x = [foo:1, bar:{-> println "Hello, world!"}]
    x.foo
    x.bar()
    

    结合鸭子打字,你可以用这种方法走很长的路。 甚至不需要掏出“as”操作符。

    链接地址: http://www.djcxy.com/p/42815.html

    上一篇: Hidden features of Groovy?

    下一篇: Python debugging tips