erlang中二进制提取字符串有哪些快捷的方式?
flash writeUTF向erlang发送一个字符串,解包后提取字符串方法如下:
%%读取字符串
read_string(Bin) ->
case Bin of
<<Len:16, Bin1/binary>> ->
case Bin1 of
<<Str:Len/binary-unit:8, Rest/binary>> ->
{binary_to_list(Str), Rest};
_R1 ->
{[], <<>>}
end;
_R1 ->
{[], <<>>}
end.
需要执行两次比特语法,一次取出字符串字节长度,第二次取出实际数据,然后再binary_to_list,这样效率貌似比较有问题,有木有更好的方法?