鉴于
[<<"1 coin">>, <<"2 cash">>, <<"3 coin">>]
我想:
<<"1 coin, 2 cash, 3 coin">>
我该如何做到这一点?
答案 0 :(得分:3)
连接2个二进制文件的方法是<<B1/binary, B2/binary>>
。它经常被使用,因为二进制文件列表通常被称为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>