该bson-erlang
模块将 BSON 编码的 JSON 转换为如下所示:
{ "salutation" : "hello",
"subject" : "world" }
像这样进入 Erlang 元组:
{ salutation, <<"hello">>, subject, <<"world">> }
现在,我试图与之交谈的服务器可以将这些字段按任何顺序排列,并且其中可能有我不关心的额外字段,所以 - 同样有效 - 我可能会看到这个:
{ subject, <<"world">>, salutation, <<"hello">>, reason, <<"nice day">> }
有没有什么方法可以指定一个函数模式来提取元组的特定部分,基于它之前出现的那个?
如果我尝试以下操作,它会因“没有函数子句匹配...”而失败,因为元组的元数是错误的,并且因为我关心的字段不在正确的位置:
handle({ salutation, Salutation, _, _ }) -> ok.
这可能吗?有一个更好的方法吗?