一、常用函数
-
lists:map返回列表-----执行返回结果,组成列表
lists:map(fun(X)->[X,X] end, [a,b,c]).
结果:[[a,a],[b,b],[c,c]] -
lists:filte返回列表-----挑选符合的,组成列表
lists:filter(fun(E) -> is_integer(E) end,[q,2,a,4]).
结果:
[2,4] -
lists:foldl传入sum, 结果 覆盖 sum,返回sum
lists:foldl(fun(X, Sum) -> X + Sum end, 0, [1,2,3,4,5]).
结果:15 -
lists:keyfind查找符合条件的元组
List1 = [{name,“zhangjing”},{name,“zhangsan”}].
lists:keyfind(“zhangjing”,2,List1)
结果:{name,“zhangjing”} -
lists:member是否该列表的成员
如果Elem和List中的某个元素匹配(相同),那么返回true,否则返回false
例子-----List列表?
lists:member({sex,“1”},[{sex,“1”},{sex,“2”},{sex,“3”}]).
结果:
true -
lists:last,List最后一个元素
例子:
List1 = [{name,“zhangjing”},{name,“zhangsan”},{name,“lisi”}].
lists:last(List1).
结果:
{name,“lisi”} -
lists:keysort按照第N个元素进行排序,然后返回一个新的顺序的TupleList。
例子:
List1 = [{name,“zhangsan”},{name,“zhangjing”}].
lists:keysort(2,List1).
结果:
[{name,“zhangjing”},{name,“zhangsan”}] -
lists:sort如果Fun函数返回true,据排序函数 Fun 来对列表 List1 里的元素进行排序
例子
lists:sort(fun(A,B)-> false end,[1,2,3]).
结果
[3,2,1]
自定义函数排序【相等,time小的排前面,不等score大的排前面】
Fun = fun(PC1,PC2) ->
if
PC1 #player_challenge.score == PC2 #player_challenge.score ->
PC1 #player_challenge.time < PC2 #player_challenge.time;
true ->
PC1 #player_challenge.score > PC2 #player_challenge.score
end
end,
SortList = lists:sort(Fun,List2), -
lists:sublist返回从第一个元素到第Len个元素的列表
例子
lists:sublist([1,2,3,4,5,6],3).
结果0
[1,2,3] -
lists:keydelete这个函数适合处理列表里面的元素是元组的情况
删除TupleList1中元组的第N个元素和Key一致的元组,只删除第一个一样的,后面一样的不删除
例子:
List = [{name,“zhangjing”},{sex,“male”},{name,“zhangsan”},{sex,“male”}],
lists:keydelete(“male”,2,List)
结果:
[{name,“zhangjing”},{name,“zhangsan”},{sex,“male”}] -
lists:keyreplace在列表中的元组 找出第N个元素和Key一致的元组,然后用新的元组将这个元组替换掉,如果没有找到,则返回原来的列表
例子:
List1 = [{name,“zhangjing”},{name,“zhangsan”}]
lists:keyreplace(“zhangjing”,2,List1,{nickname,“netzj”}).
结果:
[{nickname,“netzj”},{name,“zhangsan”}] -
lists:foreach
List中的每个元素为参数执行Fun函数,执行顺序按照List中元素的顺序,这个函数最后返回ok,是单边的
foreach(Fun, List) -> ok
例子 lists:foreach(fun(X)->
%%using X to do somethings
%%
end,List) -
lists:append
例子:
lists:append([a,b], [1,2,3]).
结果:[a,b,1,2,3] -
apply 将模块mod中的函数func应用到参数列表arglist中
例子:
apply(dates, classify_day, [monday]). -
BIF函数
atom_to_list(hello)⇒[104,101,108,108,111]
list_to_atom([119,111,114,108,100])⇒world
integer_to_list(1245)⇒[[49,50,52,53]
float_to_list(1.5)⇒[49,46,53,48,48,…,48]
list_to_float([51,46,49,52,49,53,57])⇒3.14159
list_to_integer([49,50,51,52])⇒1234
hd([a,b,c,d])⇒a 返回列表的第一个元素
(hd(PlayerItemList)) #player_item_ordinary.number
tl([a,b,c,d])⇒[b,c,d] 返回列表L的尾部
length([a,b,c,d])⇒4 返回列表L的长度
term_to_binary 编码
binary_to_term 解码
-
lists:member(X, L) X是列表L的元素时返回true,否则返回false
-
lists:append(List1, List2) 连接两个列表
-
lists:reverse(L) 颠倒列表L中的元素顺序
-
lists:sort(L) 快速排序,返回新列表
-
flatten(DeepList) -> List
例子:
lists:flatten([[a,a],[b,b],[c,c]]).
结果:
[a,a,b,b,c,c] -
lists:seq(1, ?SOCKET_ACCEPTOR))返回1到,的列表
-
flatten(DeepList) -> List, 返回只有term没有列表的汇总
例子:
lists:flatten([[a,a],[b,b],[c,c]]).
结果:
[a,a,b,b,c,c]
php
lists:flatten([
begin
try mod_union:get_logic_union_technology(PlayerUT #player_union_technology.tech_id * 1000 + (min(PlayerUT #player_union_technology.level,20)) * 10) of
UT when is_record(UT, union_technology) ->
UT #union_technology.effect_type
catch
_ : _ ->
[]
end
end
||
PlayerUT <- PlayerUTList
]).
- 元组内第几个下标插入元素,erlang:insert_element(2, {one, two, three}, new).元组的下标从1开始,记录的下标从0开始,第0个是记录名
- element(N, T),返回元组T的第N个元素,如:element(3,{a,b,c,d})⇒c。
- lists:zip/2
把 2 个列表合成一个由 2 个值组成的元组列表
二、erlang中文手册
https://erldoc.com/