2015年7月5日 星期日

[ GroovyGN ] Use Collect with Initial Collection Value

Source From Here 
The collect() method in Groovy can be used to iterate over collections and transform each element of the collection. The transformation is defined in as a closure and is passed to the collect() method. But we can also add an initial collection to which the transformed elements are added. 
- collect(Collection collector, Closure transform) 
Iterates through this collection transforming each value into a new value using the transform closure and adding it to the supplied collector.

- collect() 
Iterates through this collection transforming each entry into a new value using Closure.IDENTITY as a transformer, basically returning a list of items copied from the original collection.

- collect(Closure transform) 
Iterates through this collection transforming each entry into a new value using the transform closure returning a list of transformed values.

Below is the sample code: 
  1. // Collect without   
  2. // initial collection.  
  3. assert [0,2,4,6] == (0..3).collect { it * 2 }  
  4. assert ['Groovy''Grails'] == [lang: 'Groovy', framework: 'Grails'].collect { it.value }  
  5.   
  6. // Collect with initial collection argument.  
  7. assert [0123] == [23].collect([01]) { it }  
  8. assert [0369] == [23].collect([03], { it * 3})  
  9. assert ['Gradle''groovy''grails'] == ['Groovy''Grails'].collect(['Gradle']) { it.toLowerCase() }  
  10. assert ['m','r','h','a','k','i'] == [4, -375].collect(['m''r']) { (it + 100) as char }  
Supplement 
Groovy JDK enhancements - Collection interface

沒有留言:

張貼留言

[Linux 常見問題] sudo: Sorry, you must have a tty to run sudo Error on a Linux and Unix

Source From  Here   Preface   I‘m trying to run the following command:  #   ssh  user@box.example.com  sudo command1 /path/to/file But, a...