defadd={a,b->a+b}defsub={a,b->a-b}defmap=["a":"0","b":"1","c":"2"]println("add(1, 2): ${add(1, 2)}")println("sub(1, 2): ${sub(1, 2)}")map.keySet().forEach{printlnmap[it]}map.values().forEach{printlnit}defmap2=[Bob:42,Alice:54,Max:33]// `entry` is a map entrymap2.each{entry->println"Name: $entry.key Age: $entry.value"}map2.each{key,value->println"Name: $key Age: $value"}
Some Groovy Getter Setter Stuff…
classPunkt{defsetX(){x=123}defsetX(x){if(x<200)this.x=1234567elsethis.x=x}defgetX(){x}defsetY(y){_y=y}defgetY(){_y}defx=12def_y=14}defpunkt=newPunkt()punkt.x=111println("punkt.x: ${punkt.x}")// {} could be omited... punkt.x=222println("punkt.x: ${punkt.x}")// {} could be omited... // punkt.x is rather equal to punkt.getX() than to punkt.setX()// because there is no assigning operatorpunkt.xprintln("punkt.x: ${punkt.x}")// {} could be omited... punkt.setX()println("punkt.x after punkt.setX() call: ${punkt.x}")// {} could be omited... punkt.y=555println("punkt.y: ${punkt.y}")// {} could be omited... defpunktList=[](0..9).each{punktList.addnewPunkt()punktList[it].x=it//tmp.x = it//(punktList[it]).x = itprintln"it: $it, punktList[$it].x: ${punktList[it].x}"}
defan_obj=[x:[a:1],y:[a:2],z:[a:3]]defan_arr=[[a:1],[b:2],[c:3]]defan_other_obj=[x:[a:1],y:[b:2],z:[c:3],c:3]an_arr.each{println" - it.a: $it.a"}println("<<< "+an_arr.collect{elem->elem.a})//das geht bei array von objekten, da kann man direkt auf die keys der objekte zugreifen,//so ne art automatishe loop wie das vorherige Bsp. ...println">>> ${an_arr["a"]}"an_arr=[[a:"vier eins"],"vier zwei","vier drei"]defkey="k41"//println "${an_obj[key]}"//println "${an_obj.k41}"// the zero elem of the array is the object with the key "a" and value "vier eins"println"${an_arr[0].a}"// or an_arr[0].aprintln"${an_arr[3]?.a}"// or an_arr[3].a 3 not there -> returns null also ?println"${an_arr[1]}"println"${an_arr.getAt(2)}"println"${an_arr}"