Frage

Ich möchte den Anrufcache (Memoisierung) in nicht aufdringlicher Weise mit den Metadaten-Anmerkungen implementieren.

Hoffentlich funktioniert es so:

generasacodicetagpre.

kann es mit nur dart:mirrors erreicht werden?

War es hilfreich?

Lösung

Ich habe vor einiger Zeit einen ganzen Blogbeitrag auf diesem Thema geschrieben.Es ist zu lang, um hier zu kopieren, also hier ist der Link:

http://dartery.blogspot.com/2012/09 / Memoizing-Funktionen-in-dart.html

Das UpShot ist, dass Sie Memanisierungsfunktionen höherer Ordnung schreiben können, aber sie sind in der Allgemeinheit von Darts Mangel an flexiblen ARGS-Funktionen begrenzt.Wenn Sie auch dynamische Programmierung mit rekursiven Funktionen verwenden möchten, müssen Sie Ihre Funktion mit der Memoization im Sinne schreiben - es muss sich als Argument annehmen, sodass Sie die memanisierte Version weitergeben können.

Andere Tipps

Meine aktuelle Lösung ermöglicht:

generasacodicetagpre.

Ausgang:

Erster Anruf mit: 21
42
42
Erster Anruf nach Baz
Erster Anruf mit: 22
44

Fehler:
- keine Methoden mit ihren tatsächlichen Namen verkünden.
- kann die Sammelansicht verlängern, kann jedoch nicht vorhandene Operatoren wie operator [] cache
- Kann keine Funktionen cache cache.

Vollquelle:

generasacodicetagpre.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top