## Ideen für Aufgaben: - Schere Stein Papier in Groovy, ohne eine Klasse zu benutzen (zuhause) - Gegebenen Java Code in Groovy umwandeln und dabei den Code so kurz wie möglich halten. ## Besonderheiten in Groovy: - Gleiche Schlüsselwörter wie in Java, Schlüsselwörter können jedoch auch als Methoden- /Variablennamen verwendet werden ``` public class Hi { public static void main (String [] args) { new Hi().this() } def "this"() { print "hello" } } ``` Man sollte dies aber vermeiden, da es nur für Verwirrung sorgt und in den meisten Fällen hat man nichts davon. - Variablennamen dürfen nicht mit Zahlen beginnen, jedoch mit Underscores (\_), Dollarzeichen ($) oder Buchstaben. - Triple Quoted Strings: Gehen über meherere Zeilen hinweg ``` def a = '''Dies ist Ein riple Quoted String''' print a ``` - Man kann in Strings Platzhalter verwenden und somit Variablenwerte dynamisch in die Strings einfügen (vgl. Ruby #{}). Strandardmäßig werden in Groovy Strings aus der Klasse _java.lang.String_ benutzt (also Java Strings). Benutzt man jedoch einen Platzhalter im Stringliteral, handelt es sich um einen GString aus der Klasse _groovy.lang.GString_ ``` def welt = "World!" def hallo = "Hello ${welt}" print hallo // "Hello World!" ``` - Es ist auch erlaubt Berechnungen innerhalb des Platzhalters durchzuführen. Auch das wäre also ein gültiger Groovy Code: ``` def str = "2 + 3 ergibt: ${2+3}"; print str // "2 + 3 ergibt: 5 ``` - Man darf sogar mehrere Statements innerhalb des Platzhalters verwenden, jedoch wird empfohlen dies zu vermeiden. ``` def str = "The sum of 1 and 2 is equal to ${def a = 1; def b = 2; a + b}" print str // "The sum of 1 and 2 is equal to 3" ``` - Auch Attribute von Objekten dürfen in Kombination mit dem "$" Zeichen als Platzhalter verwendet werden. Angenommen wir haben ein Objekt einer Klasse A (a) mit einem Attribut _attr_ (Wert: 0) ``` print "Wert: $a.attr" // "Wert: 0" ```