分配值
A = <<"hell">>
我有两个代码片段应该执行相同的操作,
<<A:size(A)/binary, Rest/binary>> = <<"hello">>
以上原因失败的原因是:语法错误:'('
然后我将大小(A)的值赋给B,
B = size(A)
然后以下代码段工作,
<<A:B/binary, Rest/binary>> = <<"hello">>
为什么不首先工作?
答案 0 :(得分:2)
根据Reference Manual 8.17 Bit Syntax Expressions
在位串构造中使用,
Size
是一个表达式 评估为整数。用于位串匹配,
Size
必须是整数或a 变量绑定到整数。
因此即使<<A:(size(A))/binary, Rest/binary>> = <<"hello">>
语法正确,也不允许匹配(illegal bit size
)。