美文网首页
【erlang】优雅的获取Map数据

【erlang】优雅的获取Map数据

作者: 夏澪 | 来源:发表于2018-11-02 17:29 被阅读0次

    今天,观摩大佬代码的时候,偶然发现大佬代码中取 map 内的数据的方式特别简洁,看起来也很优雅,遂放弃了 原先 map:find/2 和 map:get/2 方法,经我测试,此方法求的 key 和原先的是子集关系,也就是说即使有 10 对 kv 对,用这方法写的时候只要写需要的 key 而非使用全部的 key。

    模板:

    Map = #{
        <<"header">> => #{
          <<"probe_sn">> => <<"it's probe sn">>,
          <<"probe_mac">> => <<"it's probe mac">>
        },
        <<"content_data">> => #{
          <<"probe_starttime">> => <<"2018-11-02 16:01:00">>,
          <<"probe_device">> => [
            #{
              <<"src_mac">> => <<"it's mac">>,
              <<"detail">> => [
                #{<<"entry_time">> => <<"2018-11-01 18:53:00">>, <<"signal_strength">> => <<"4G">>,
                  <<"device_type">> => <<"mi">>}]
            },
            #{
              <<"src_mac">> => <<"it's mac2">>,
              <<"detail">> => [
                #{<<"entry_time">> => <<"2018-11-01 19:08:00">>, <<"signal_strength">> => <<"5G">>,
                  <<"device_type">> => <<"mi">>}
              ]
            }]
        }}
    

    取数据的方法:

    #{
        <<"header">> := #{
          <<"probe_sn">> := ProbeSn
        },
        <<"content_data">> := #{
          <<"probe_starttime">> := ProbeStartTime,
          <<"probe_device">> := [ <<"src_mac">> := SrcMac ]
        }} = Map
    

    相关文章

      网友评论

          本文标题:【erlang】优雅的获取Map数据

          本文链接:https://www.haomeiwen.com/subject/vcvcxqtx.html