Erlang-为什么在模式匹配二进制文件时不能使用值的size()?

Erlang-为什么在模式匹配二进制文件时不能使用值的size()?,erlang,Erlang,赋值 A = <<"hell">> 那么下面的代码段就可以工作了 <<A:B/binary, Rest/binary>> = <<"hello">> = 为什么第一次不起作用?根据 在位字符串构造中使用,Size是一个 计算为整数 在位字符串匹配中使用,Size必须是整数或整数 绑定到整数的变量 因此,即使=是正确的语法,也不允许在匹配中使用(非法位大小) B = size(A) <<A:B/binary

赋值

A = <<"hell">>
那么下面的代码段就可以工作了

<<A:B/binary, Rest/binary>> = <<"hello">>
=
为什么第一次不起作用?

根据

在位字符串构造中使用,
Size
是一个 计算为整数

在位字符串匹配中使用,
Size
必须是整数或整数 绑定到整数的变量

因此,即使
=
是正确的语法,也不允许在匹配中使用(
非法位大小

B = size(A)
<<A:B/binary, Rest/binary>> = <<"hello">>