Erlang - 模式匹配 ext_binary(),结果来自 term_to_binary()
Erlang - pattern match ext_binary(), result from term_to_binary()
大家好,Erlangers!
我想进行模式匹配并区分 term_to_binary() 的结果和常规二进制字符串,例如<<"hello :))">>.
term_to_binary() 的结果是一个类型为 ext_binary() 的字符串,但我不确定如何对其进行模式匹配,而无需模式匹配常规二进制字符串。
谢谢!
如果在当前 Erlang 版本中调用 term_to_binary()
,它将以 131
字节开始,如 http://erlang.org/doc/apps/erts/erl_ext_dist.html 所示。它没有说明以前的版本号是多少(例如在添加地图之前),但我怀疑是 128 到 130。
131
不是 not a printable character in Latin1,也不是 UTF-8 中的合法起始字节。
因此 <<131, _/binary>>
应该只匹配当前的 ETF 编码条款。
大家好,Erlangers!
我想进行模式匹配并区分 term_to_binary() 的结果和常规二进制字符串,例如<<"hello :))">>.
term_to_binary() 的结果是一个类型为 ext_binary() 的字符串,但我不确定如何对其进行模式匹配,而无需模式匹配常规二进制字符串。
谢谢!
如果在当前 Erlang 版本中调用
term_to_binary()
,它将以131
字节开始,如 http://erlang.org/doc/apps/erts/erl_ext_dist.html 所示。它没有说明以前的版本号是多少(例如在添加地图之前),但我怀疑是 128 到 130。131
不是 not a printable character in Latin1,也不是 UTF-8 中的合法起始字节。
因此 <<131, _/binary>>
应该只匹配当前的 ETF 编码条款。