このbson-erlang
モジュールは、BSON でエンコードされた JSON を次のように変換します。
{ "salutation" : "hello",
"subject" : "world" }
次のような Erlang タプルに変換します。
{ salutation, <<"hello">>, subject, <<"world">> }
今、私が話そうとしているサーバーは、これらのフィールドを任意の順序で配置できます。そこには、私が気にしない余分なフィールドがある可能性があります。したがって、同様に有効ですが、代わりに次のように表示される可能性があります。
{ subject, <<"world">>, salutation, <<"hello">>, reason, <<"nice day">> }
タプルの特定の部分を抽出する関数パターンを、その直前にある部分に基づいて指定する方法はありますか?
次のことを試してみると、タプルのアリティが間違っていて、気になるフィールドが正しい場所にないため、「一致する関数句がありません...」で失敗します。
handle({ salutation, Salutation, _, _ }) -> ok.
これは可能ですか?これを行うより良い方法はありますか?