Würde jemals ein erfahrener Erlang-Programmierer association lists über Datensätze empfehlen?Ist es immer eine gute Idee, Assoziationslisten anstelle von Datensätzen zu verwenden?
Ein Fall kann sein, wo zwei (oder mehr) Knoten auf verschiedenen Maschinen Nachrichten austauschen. Wir möchten die Software auf jeder Maschine unabhängig aktualisieren können. Bei einigen Upgrades kann ein Feld zu einer (oder mehreren) der gesendeten Nachrichten hinzugefügt werden. Es scheint, als würde ein Datensatz als Nachricht verwendet werden, was bedeutet, dass Sie das Upgrade auf beiden Rechnern immer im Sperrschritt durchführen müssen, damit das Empfängerfeld den Datensatz nicht ignoriert. Während, wenn Sie so etwas wie eine Assoziationsliste verwendeten (die immer noch eine "record-like" API hat), würde der noch nicht verbesserte Empfänger die Nachricht immer noch erfolgreich empfangen und das neue Feld einfach ignorieren. Mir ist klar, das ist nicht immer das gewünschte Verhalten, aber oft ist es. Nehmen Sie außerdem an, dass die Nachrichten ziemlich klein sind, so dass die Nachschlagezeit keine Rolle spielt.
die oben Unter der Annahme, macht einen Sinn, ich habe folgende weitere Fragen:
- Gibt es einen Standard (oder weit verbreitet) Bibliothek für Alists? Etwas triviales Googeln ergab nichts.
- Gibt es andere Fälle, in denen Sie eine Assoziationsliste (oder etwas Ähnliches) verwenden würden?
+1 für das Modul proplists. Was das Diktat anbelangt, so hatte ich wirklich noch nicht viel Bedarf dafür, aber ich nehme an, dass ich versuche, meine Proplisten so klein wie möglich zu halten. –