zoukankan      html  css  js  c++  java
  • R17下maps新增参数的问题

    今天遇到一个奇怪的问题,我之前写的一个函数在我弟弟的机器上编译出错。代码如下:

    %%将list  [k1,v1,k2,v2...]转换成map {k1=>v1,key2=>v2...}
    -spec(convert_list_to_map(List::list()) -> map()).
    convert_list_to_map(List) when is_list(List)->
      F = fun(X,{IsPass,Key,Result})->
        if
          not(IsPass)-> {true,X,Result};
          true -> {false,{},Result#{Key=>X}}
        end
          end,
      {_,_,Return} = lists:foldl(F,{false,{},#{}},List),
      Return.

    在我机器上表现正常,在我弟弟机器上总是报错

    后来发现我俩的erl版本不一样,我用的是R18,在

    http://stackoverflow.com/questions/29360793/illegal-use-of-variable-in-erlang-map
    中提到

    将 Result#{Key=>X} 改成 maps:put(Key,X,Result)
    编译通过。
  • 相关阅读:
    053-146
    053-659
    053-658
    053-657
    053-656
    053-654
    053-655
    053-652
    053-651
    053-650
  • 原文地址:https://www.cnblogs.com/lsm19870508/p/5355504.html
Copyright © 2011-2022 走看看