从中学到了以下几点:
1、绑定进程,还是很方便滴。
2、if和case的用法, 据我目前的了解程度来看,if可以添加默认匹配规则(在if判断语句中,应该至少有一个是true,否则就会异常,一般把if最后一个条件判断设置为true,以匹配未匹配的规则)这点有点像C中case的default,而Erlang中的case只匹配列出来的条件,如果没有匹配,则报异常,对于结果不可预料的结果判断,可以使用if判断。
-module(p_atom).
-export([start/2,stop/1]).
start(AnAtom,Fun) ->
L = whereis(AnAtom),
if L =:= undefined ->
%%io:format("has not been built yet!!");
register(AnAtom,spawn(fun() -> tick(Fun) end));
true ->
io:format("the ~p ~p is exist!",[AnAtom,L]),
void
end.
tick(Fun) ->
receive
stop -> void
after 2000 ->
Fun(),
tick(Fun)
end.
stop(AnAtom) -> AnAtom ! stop.
~