データベースの行をタプルのリストからマップのリストに変換するために、リストの理解を使用します。ある日、データベーステーブルに新しい列を追加して、どこにいてもコードを変更することを忘れてしまいました。 そのため、私は奇妙な結果を発見しました。データベースの行は空のリストになります。 ERLコンソールのコードのErlangのリスト理解から予期しない空のリスト
例:この場合の右辺値の不一致:
> DbRows = [{1, 1, 1}, {2, 2, 2}].
[{1,1,1},{2,2,2}]
> [#{<<"col1">> => Col1, <<"col2">> => Col2} ||{Col1, Col2} <- DbRows].
[]
なぜアーランは例外エラーを生成しませんか?
このコードは問題ありませんか、このようなデータ変換を実行するには他の構文が優先されますか?
また、これはOPが期待する例外をスローしません。答えの一部を得ることは、何も役に立たないかもしれませんが、バグを発見するのが難しくなります。 –
本当に例外が必要な場合は 'Prepare = fun(X)'を 'Prepare = fun(X = {_、_})'に置き換える必要があります。 – nikit