799 B
799 B
Hashes und Blöcke
📆 Fällig: ---- 📆 Musterlösung
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:
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'