ruby-uebungen/Assignment_022/readme.md

19 lines
799 B
Markdown
Raw Normal View History

2023-05-25 17:47:19 +02:00
# Hashes und Blöcke
2023-05-23 09:19:31 +02:00
📆 **Fällig: ----** 📆 [Musterlösung](solution/)
2023-05-25 17:47:19 +02:00
Realisieren Sie einen einfachen _Cache_ mit Hilfe von _Hashes_. Schreiben Sie hierzu eine Klasse `Cache`.
2023-05-23 09:19:31 +02:00
2023-05-25 17:47:19 +02:00
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:
2023-05-23 09:19:31 +02:00
```ruby
2023-05-25 17:47:19 +02:00
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'
2023-05-23 09:19:31 +02:00
```