BAR*_*BAR 8 binary erlang integer
我有一个二进制M,这样34 =将始终存在,其余的可能在任意数量的数字之间变化但总是一个整数.
M = [<<"34=21">>]
Run Code Online (Sandbox Code Playgroud)
当我运行此命令时,我得到一个答案
hd([X || <<"34=", X/binary >> <- M])
Answer -> <<"21">>
Run Code Online (Sandbox Code Playgroud)
我怎样才能使这个整数尽可能高效地使用它?
小智 21
[<<"34=",X/binary>>] = M,
list_to_integer(binary_to_list(X)).
Run Code Online (Sandbox Code Playgroud)
这产生整数 21
leg*_*cia 20
从R16B开始,binary_to_integer/1可以使用BIF :
OTP-10300
增加了四个新的BIFS, ,,
erlang:binary_to_integer/1,2和 .这些bif的工作方式类似于列表对应的工作方式,除非它们使用二进制文件.在大多数情况下,从二进制文件转换到二进制文件比从列表转换到列表更快.erlang:integer_to_binary/1erlang:binary_to_float/1erlang:float_to_binary/1,2这些bifs会自动导入到erlang源文件中,因此可以在没有erlang前缀的情况下使用.
所以这看起来像:
[<<"34=",X/binary>>] = M,
binary_to_integer(X).
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13111 次 |
| 最近记录: |