数据包erlang的术语。构造二进制文件

时间:2015-01-11 01:50:40

标签: syntax erlang

我有以下代码:

term_to_packet(Term) ->
    B = term_to_binary(Term),   
    A = byte_size(B),
    << 1:4/integer-unit:8, B:A/integer-unit:8 >>.

然而,当我跑步时:

term_to_packet("Hello").

我收到错误:

exception error: bad argument in function term_to_packet line 20

其中第20行对应term_to_packet函数的最后一行。

我不太确定是什么引发了这个错误。

1 个答案:

答案 0 :(得分:2)

B是二进制文件,但在最后一行的二进制构造中,您指定它是integer。这似乎有效:

term_to_packet(Term) ->
B = term_to_binary(Term),   
A = byte_size(B),
<< 1:4/integer-unit:8, B:A/binary-unit:8 >>.