zoukankan      html  css  js  c++  java
  • erlang 随笔

    (1)

    删除进程字典中x键的值 erlang:put(x,undefined).  就是把值改为undefined就Ok.

    (2)

    ets:match 匹配记录的时候,_='_' 可以代表任意多的键值对,匹配非记录的时候 '_' 只能代表一个term.

    (3)

    类似 lists:map/lists:foreach/lists:splitwith 调用的fun里面,不能进行when 断言,单独的fun里面也不能

    (4)

     1 test24() ->
     2     A = #ets_base{id=1,ic=1,ib=3,ia=4},
     3     A1 = #ets_base{id=2,ic=2,ib=4,ia=5},
     4     A2 = #ets_base{id=3,ic=4,ib=5,ia=6},
     5     get_min_key(1,[A,A1,A2]).
     6 
     7 
     8 get_min_key(N,Info) ->
     9     case lists:keyfind(N,#ets_base.ic,Info) of
    10         false ->
    11             N;
    12         _ ->
    13             get_min_key(N+1,Info)
    14     end;
    15 get_min_key(N,Info) when N =:= 2 ->
    16     [].

    erlang查找是按顺序的,上面的2个get_min_key 反过来的话结果就不一样了。

    (6)

    要非常注意同步问题,gen_server的state、ets表、进程字典、数据库的同步问题。

    (7)

    注意使用赋值匹配。

    (8)

    行为进程模块执行到 terminate 的时候不可以再调用相应的进程cast/call等,这个时候已经不响应这些调用了

  • 相关阅读:
    pytorch 文本输入处理
    理解 on-policy 和 off-policy
    Monte Carlo与TD算法
    Monte Calro Tree Search (MCTS)
    强化学习概览
    linux 服务器 keras 深度学习环境搭建
    sed和awk学习整理
    linux shell编程进阶学习(转)
    gdb调试:
    MySQL C API 访问 MySQL 示例
  • 原文地址:https://www.cnblogs.com/labi/p/3588590.html
Copyright © 2011-2022 走看看