Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/apache-flex/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
erlang中的二进制模式匹配_Erlang - Fatal编程技术网

erlang中的二进制模式匹配

erlang中的二进制模式匹配,erlang,Erlang,我正试图用一个二进制匹配这个 <<_:(A * ?N + A + B)/binary,T:1/binary,_/binary>> 然而,erlang似乎抛出了一个错误,表示变量T未绑定。简单解释一下:我想忽略一定数量的字节,然后读取一个字节,然后忽略剩余的字节。如何实现这一点?在位语法中,我们不能将运行时表达式用作位大小。 我们只能使用常量、编译时表达式,如u4*8/binary和变量:Var/binary 在您的情况下,解决方案是首先将A*?N+A+B绑定到变量

我正试图用一个二进制匹配这个

  <<_:(A * ?N + A + B)/binary,T:1/binary,_/binary>>

然而,erlang似乎抛出了一个错误,表示变量T未绑定。简单解释一下:我想忽略一定数量的字节,然后读取一个字节,然后忽略剩余的字节。如何实现这一点?

在位语法中,我们不能将运行时表达式用作位大小。 我们只能使用常量、编译时表达式,如u4*8/binary和变量:Var/binary

在您的情况下,解决方案是首先将A*?N+A+B绑定到变量

IgnoredBytes = A * ?N + A + B,
<<_:IgnoredBytes/binary,T:1/binary,_/binary>> = SomeBinary,
T.

位语法中更好地解释了这一点,我们不能使用运行时表达式作为位大小。 我们只能使用常量、编译时表达式,如u4*8/binary和变量:Var/binary

在您的情况下,解决方案是首先将A*?N+A+B绑定到变量

IgnoredBytes = A * ?N + A + B,
<<_:IgnoredBytes/binary,T:1/binary,_/binary>> = SomeBinary,
T.

中有更好的解释,您不能使用带有变量的表达式,变量的位大小取决于。尝试绑定firstIgnoreBytes=A*?N+A+B,然后匹配它:=SomeBinary.Yep。如果你想把它作为一个答案,我可以接受,你不能使用带有变量的表达式。尝试绑定firstIgnoreBytes=A*?N+A+B,然后匹配它:=SomeBinary.Yep。如果你想回答这个问题,我可以接受