Ich benutze List Verständnis für die Umwandlung von Datenbank Zeilen aus der Liste der Tupel in die Liste der Karten. Eines Tages habe ich eine neue Spalte in meine Datenbanktabelle eingefügt und vergessen, den Code überall zu ändern. Und deshalb habe ich einen seltsamen Effekt entdeckt: Datenbankzeilen werden zu einer leeren Liste.Unerwartete leere Liste von Erlang Listenverstehen
Beispiel für Code in erl Konsole:
> DbRows = [{1, 1, 1}, {2, 2, 2}].
[{1,1,1},{2,2,2}]
> [#{<<"col1">> => Col1, <<"col2">> => Col2} ||{Col1, Col2} <- DbRows].
[]
Warum Erlang erzeugt keine Ausnahmefehler: keine Übereinstimmung der rechten Seite Wert in diesem Fall?
Ist dieser Code OK, oder wird eine andere Syntax für die Durchführung solcher Datentransformationen bevorzugt?
erwartet Dies auch nicht werfen die OP Ausnahme. Einen Teil der Antwort zu bekommen ist vielleicht besser als nichts, aber es würde es auch schwieriger machen, den Fehler zu erkennen. –
Wenn Sie wirklich die Ausnahme benötigen, müssen Sie 'Prepare = fun (X)' nur durch 'Prepare = fun (X = {_, _})' ersetzen, aber ich glaube, das ist nicht der Punkt. – nikit