Erlang-模式匹配ext_binary(),来自term_to_binary()的结果

时间:2018-12-12 10:40:05

标签: erlang

'G'day Erlangers!

我想模式匹配并区分term_to_binary()和常规二进制字符串的结果,例如<<“ hello :))” >>。

term_to_binary()的结果是类型为ext_binary()的字符串,但是我不确定如何在不与常规二进制字符串进行模式匹配的情况下进行模式匹配。

谢谢!

1 个答案:

答案 0 :(得分:1)

  1. 如果在当前的Erlang版本中调用term_to_binary(),它将以131字节开头,如http://erlang.org/doc/apps/erts/erl_ext_dist.html所示。它没有说以前的版本号是什么(例如在添加地图之前),但是我怀疑是128到130。

  2. 131not a printable character in Latin1,也不是UTF-8中的合法起始字节。

因此<<131, _/binary>>应该仅与当前ETF编码的条款匹配。