匹配 Guard 中二进制文件的最后一个字节
是否可以使用模式匹配来匹配二进制文件中的最后一个字节。像这样的东西:
<<Rest/binary, 45>> = BinaryToMatch
Is it possible to match the last byte in a binary using pattern matching. Something like:
<<Rest/binary, 45>> = BinaryToMatch
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
简而言之,没有(至少在 R14B01 中没有)。您还必须知道二进制文件的大小。
In short, no (at least not in R14B01). You must also know the size of the binary.
或者,您也可以执行
45 = binary:last(Bin)
。不幸的是这个函数不是一个守卫 BIF。Alternatively, you can also do
45 = binary:last(Bin)
. Unfortunately this function is not a guard BIF.在erlang 19中(可能以前的版本也支持这个,我没有测试它们)你可以使用这个守卫:
In erlang 19 (may be previous versions also support this, I don't test them) you can use this guard :