erlang各种有用的函数包括一些有用nif封装,还有一些性能测试case。
Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 
 
 
 
 

32 Zeilen
641 B

-module(utArray).
%% 基于tuple封装的数组
%% 基于性能测试结果和出于性能考虑数组大小不要超过128
-import(erlang, [make_tuple/2, make_tuple/3]).
-export([
new/1
, new/2
, new/3
, set/3
, get/2
, size/1
]).
new(Size) ->
erlang:make_tuple(Size, undefined).
new(Size, InitialValue) ->
erlang:make_tuple(Size, InitialValue).
new(Size, DefaultValue, InitList) ->
erlang:make_tuple(Size, DefaultValue, InitList).
set(Idx, Value, UtArray) ->
erlang:setelement(Idx, UtArray, Value).
get(Idx, UtArray) ->
erlang:element(Idx, UtArray).
size(UtArray) ->
erlang:tuple_size(UtArray).