我正在尝试将二进制模式与此
进行匹配 <<_:(A * ?N + A + B)/binary,T:1/binary,_/binary>>
然而,似乎erlang抛出一个错误,说变量T是未绑定的。只是一个简单的解释:我想忽略一定数量的字节,然后读取一个字节,然后忽略剩余的字节。我怎样才能做到这一点?
答案 0 :(得分:3)
在位语法中,我们不能将运行时表达式用作位大小。
我们只能使用常量,编译时间表达式,如_:(4*8)/binary
和变量:_:Var/binary
。
在您的情况下,解决方案是首先将A * ?N + A + B
绑定到变量。
IgnoredBytes = A * ?N + A + B,
<<_:IgnoredBytes/binary,T:1/binary,_/binary>> = SomeBinary,
T.
中有更好的解释