【问题标题】:How to Erlang binary combine?如何 Erlang 二进制组合?
【发布时间】:2018-07-17 04:24:42
【问题描述】:

给定

[<<"1 coin">>, <<"2 cash">>, <<"3 coin">>]

我想要:

<<"1 coin, 2 cash, 3 coin">>

我怎样才能做到这一点?

【问题讨论】:

    标签: erlang


    【解决方案1】:

    连接两个二进制文件的方法是&lt;&lt;B1/binary, B2/binary&gt;&gt;。它不经常使用,因为二进制文件列表通常被称为 iolist,并且由 Erlang 中的大多数库直接操作。

    由于您不仅要展平列表,还要在每个术语之间添加", ",您可以编写自己的递归函数或使用列表:foldl/3:

    1> Concat = fun(L) -> [H|T] = lists:reverse(L), lists:foldl(fun(X,Acc) -> <<X/binary,", ",Acc/binary>> end, H, T) end.
    #Fun<erl_eval.6.90072148>
    2> Concat([<<"1 coin">>, <<"2 cash">>, <<"3 coin">>]).                                                                               
    <<"1 coin, 2 cash, 3 coin">>
    3>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-22
      • 2015-06-01
      • 2012-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-30
      相关资源
      最近更新 更多