### Aufgabe 1 (2 Punkte) Erklären Sie kurz die Funktion des "Elvis-Operators" in Groovy und geben Sie ein passendes Beispiel ##### Lösung Der "Elvis-Operator" ist eine Kurzform des ternären Operators. Dieser wird verwendet, um einen Standardwert anzugeben, wenn eine Variable "null" oder falsly ist. ``` Groovy def result = ausdruck1 ?: ausdruck2 ``` ausdruck2 ist der Standartwert, falls ausdruck1 null oder falsly ist. ### Aufgabe 2 (2 Punkte) Überführen Sie folgende Java-Code in Groovy-Code ```java public static void main(String[] args){ int a = 1; int b = 2; int c = 3; System.out.println("Ihre Zahlen sind: " + a + ", " + b + ", " + c); } ``` ##### Lösung ```Groovy def(a,b,c) = [1,2,3] println "Das sind Ihre Zahlen: $a, $b, $c" ``` ### Aufgabe 3 #### a) Was gibt folgender Groovy-Code aus ? ```Groovy def namen = ["Alice", "Bob", "Charlie", "Diana"] namen.each { name -> println name.toUpperCase() } ``` ##### Lösung ALICE BOB CHARLIE DIANA #### b) Fügen Sie "namen" folgende Werte hinzu: "Paolo", 5 ##### Lösung ```Groovy name << "Paolo" name << 5 ``` ### Aufgabe 4 Folgende Klasse ist gegeben: ```Groovy class Person{ def name def age } ``` Initialisieren Sie ein Objekt der Klasse "Person" mit name = "Reinhard" und age = 12 ##### Lösung ```Groovy def person = new Person(name: "Reinhard", age: 12) ``` oder ```Groovy def person = new Person() person.name = "Reinhard" person.age = 12 ``` ### Aufgabe 5 Kreuzen Sie richtige Aussagen an - [ ] Groovy ist eine Mischung aus Java und Ruby - [ ] Groovy Code lässt sich auch über den Java-Compiler ausführen - [ ] Enums können mehr als nur Variablen Deklarationen beinhalten - [ ] Enums können nur Variablen Deklarationen beinhalten - [ ] Groovy unterstützt sowohl dynamische als auch statische Typisierung ### Aufgabe 6 Welche der folgenden Strings sind gültige Groovy-Strings? Kreuzen Sie die richtigen Antwortmöglichkeiten an. ```Groovy [ ] def a = 'Groovy ist großartig!' [ ] def b = /Groovy hat viele Möglichkeiten "Strings" zu formen/ [ ] def c = $\Vielleicht funktioniert auch 'dieser' "String"\$ [ ]def d = " erste Zeile zweite Zeile dritte Zeile " [ ] def e = "Die 'PR3 Klausur' ist fast geschafft!" [ ] def f = "Auch das könnte ein ${gueltig} String sein" ```