首页 > 其他 > 详细

Effective Erlang —— 二进制型的构造和匹配

时间:2015-08-18 15:32:52      阅读:297      评论:0      收藏:0      [点我收藏+]

在 R12B 中,构造和匹配二进制型最自然的方式比前版中的要快得多。你可用如下简单的代码来构造一个二进制型:

这么写(在 R12B 中)/求别这么写(在 R12B 之前的版本中)

my_list_to_binary(List) -> my_list_to_binary(List, <<>>).
my_list_to_binary([H|T], Acc) -> my_list_to_binary(T, <<Acc/binary,H>>);
my_list_to_binary([], Acc) -> Acc.


在 R12B 之前的发行版中,在每次迭代中 Acc 都会被复制一次。在 R12B 中,Acc 只在第一次迭代中被复制,并且在此之后,会开辟额外的内存空间。在下一轮迭代中,H 被写入额外的内存。当额外的内存用满时,该二进制型会重新扩展更多的额外内存。被扩展的内存是二进制型的两倍大小,或者是256,无论哪个都比二进制型大。

匹配二进制型最自然的方式现在是最快的。

这么写(在 R12B 中)

my_binary_to_list(<<H,T/binary>>) -> [H|my_binary_to_list(T)];
my_binary_to_list(<<>>) -> [].

 

 

 

Effective Erlang —— 二进制型的构造和匹配

原文:http://www.cnblogs.com/bigwhite/p/4739220.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!