随记(1)常用函数

本文介绍了Erlang编程中的一些常用函数,包括lists:map、lists:filter、lists:foldl、lists:keyfind、lists:member等,通过实例展示了它们的功能和用法。此外,还提到了erlang中文手册作为参考资料。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、常用函数

  1. lists:map返回列表-----执行返回结果,组成列表
    lists:map(fun(X)->[X,X] end, [a,b,c]).
    结果:[[a,a],[b,b],[c,c]]

  2. lists:filte返回列表-----挑选符合的,组成列表
    lists:filter(fun(E) -> is_integer(E) end,[q,2,a,4]).
    结果:
    [2,4]

  3. lists:foldl传入sum, 结果 覆盖 sum,返回sum
    lists:foldl(fun(X, Sum) -> X + Sum end, 0, [1,2,3,4,5]).
    结果:15

  4. lists:keyfind查找符合条件的元组
    List1 = [{name,“zhangjing”},{name,“zhangsan”}].
    lists:keyfind(“zhangjing”,2,List1)
    结果:{name,“zhangjing”}

  5. lists:member是否该列表的成员
    如果Elem和List中的某个元素匹配(相同),那么返回true,否则返回false
    例子-----List列表?
    lists:member({sex,“1”},[{sex,“1”},{sex,“2”},{sex,“3”}]).
    结果:
    true

  6. lists:last,List最后一个元素
    例子:
    List1 = [{name,“zhangjing”},{name,“zhangsan”},{name,“lisi”}].
    lists:last(List1).
    结果:
    {name,“lisi”}

  7. lists:keysort按照第N个元素进行排序,然后返回一个新的顺序的TupleList。
    例子:
    List1 = [{name,“zhangsan”},{name,“zhangjing”}].
    lists:keysort(2,List1).
    结果:
    [{name,“zhangjing”},{name,“zhangsan”}]

  8. 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),

  9. lists:sublist返回从第一个元素到第Len个元素的列表
    例子
    lists:sublist([1,2,3,4,5,6],3).
    结果0
    [1,2,3]

  10. 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”}]

  11. lists:keyreplace在列表中的元组 找出第N个元素和Key一致的元组,然后用新的元组将这个元组替换掉,如果没有找到,则返回原来的列表
    例子:
    List1 = [{name,“zhangjing”},{name,“zhangsan”}]
    lists:keyreplace(“zhangjing”,2,List1,{nickname,“netzj”}).
    结果:
    [{nickname,“netzj”},{name,“zhangsan”}]

  12. lists:foreach
    List中的每个元素为参数执行Fun函数,执行顺序按照List中元素的顺序,这个函数最后返回ok,是单边的
    foreach(Fun, List) -> ok
    例子 lists:foreach(fun(X)->
    %%using X to do somethings
    %%
    end,List)

  13. lists:append
    例子:
    lists:append([a,b], [1,2,3]).
    结果:[a,b,1,2,3]

  14. apply 将模块mod中的函数func应用到参数列表arglist中
    例子:
    apply(dates, classify_day, [monday]).

  15. 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 解码

  1. lists:member(X, L) X是列表L的元素时返回true,否则返回false

  2. lists:append(List1, List2) 连接两个列表

  3. lists:reverse(L) 颠倒列表L中的元素顺序

  4. lists:sort(L) 快速排序,返回新列表

  5. flatten(DeepList) -> List
    例子:
    lists:flatten([[a,a],[b,b],[c,c]]).
    结果:
    [a,a,b,b,c,c]

  6. lists:seq(1, ?SOCKET_ACCEPTOR))返回1到,的列表

  7. 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
    ]).
  1. 元组内第几个下标插入元素,erlang:insert_element(2, {one, two, three}, new).元组的下标从1开始,记录的下标从0开始,第0个是记录名
  2. element(N, T),返回元组T的第N个元素,如:element(3,{a,b,c,d})⇒c。
  3. lists:zip/2
    把 2 个列表合成一个由 2 个值组成的元组列表

二、erlang中文手册

https://erldoc.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值