# Hashes und Blöcke 📆 **Fällig: ----** 📆 [Musterlösung](solution/) Realisieren Sie einen einfachen _Cache_ mit Hilfe von _Hashes_. Schreiben Sie hierzu eine Klasse `Cache`. Die Klasse `Cache` hat eine Methode zum Hinzufügen von Elementen (`add`) und eine zum Auslesen (`[]`), wobei jeweils ein String als Schlüssel verwendet wird. Wenn ein Element nicht enthalten sein sollte, liefert die Methode `[]` nicht `nil` zurück, sondern ruft einen Block auf, der im Konstruktor der Klasse übergeben wurde. Diese Block beschafft die Daten und gibt sie zurück. Eine beispielhafte Benutzung sähe dann wie folgt aus: ```ruby c = Cache.new { |key| "Neuer Wert für key #{key}" } c.add 'key1', 'value1' c.add 'key2', 'value2' puts c['key1'] # -> 'value1' puts c['key3'] # -> 'Neuer Wert' ```