`
litaocheng
  • 浏览: 337677 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
Module的Attribute形式如下: -Attr(Value). 其中Attr为atom,Value可以为任何直接的term。 Attribute包含预定义的Attributes以及用户自定义的Attributes。 预定义模块Attribute(Pre-Defined Module Attributes): -module(Module) 名为Module的模块声明,Module为atom,Module必须与此文件文件名相同(除去.erl后缀名,比如module1.erl,则Module为module1) -export(Functions) 说明本模块导出的函数列表,Fu ...
joe老大关于rpc之争的文章 原文:http://armstrongonsoftware.blogspot.com.nyud.net/2008/05/road-we-didnt-go-down.html 通过我的哪吒机器人,我收到joe老大blog更新的消息,以为joe老大的blogspot不会更新,甚是惊喜. 因为"功夫网"的原因,我们无法访问b ...

gen_event 讲解

OTP中,事件管理器(event manager)用来接收事件,这里的事件非常广泛,可以为错误,警告各种各样erlang允许的信息。 事件管理器拥有零个或多个事件处理器(event handler)。当事件管理器收到一个事件时,此事件会被管理器内部安装的所有处理器处理。 其实在事件管理器(gen_event behaviour)中,拥有一个[{Module, State}],其保存安装的处理器(Module模块)及对应的状态。当收到事件时,管理器遍历调用Module的 Module:handle_event/2函数进行处理。 callbacks接口 1. init(InitArg) 处理器安装 ...
gen_server behaviour gen_server为最常用的一个behaviour,其定义了client/server模型的基本框架。 我们只需要定义一个“回调”(callback)module,实现必要的export fun。 1.genserver:start_link/4 启动gen_server调用start_link/4,比如:gen_server:start_link({local, myserver}, myserver, arg, [])表示我们在本地节点注册一个名叫myserver的process,这个参数也可以忽略,那样就不会为process注册名称,而一切交 ...
很多时候你需要测量某个函数的执行时间,从而进行优化。 在erlang中,通过timer:tc/3可以很方便的获取某个函数的执行时间: tc(Module, Function, Arguments) -> {Time, Value} Types Module = Function = atom() Arguments = [term()] Time = integer() in microseconds Value = term() 返回值中Time表示函数消耗时间,单位为ms。 有些时候,我们需要某个函数的执行多次,从而更准确的获取函数的执行时间,我们可以书写这样 ...

Fun定义

Fun定义 fun (Pattern1, ..., PatternN) [when GuardSeq1] -> Body1; .... (PatternK1, ..., PatternKN) [when GuardSeqK] -> BodyK end 也可以依据已经定义的函数定义声明fun fun Name/Arity fun Module:Name/Arity 对于第一种形式没有指定Module,其会隐式的判断对应的Module,可能是import的Module,也可能是当前Module。(注意:推 ...
为什么要使用behaviour,如果您对erlang有所了解的话,就明白其中的好处。 可以做到代码通用,可以减少错误,可以使用很多成熟的久经考验的模式,可以减轻无谓的重复劳动等等。。 有些时候,你可能需要定义自己的behaviour,这可不仅仅是OTP的权力。 自己定义behaviour非常简单,仅仅需要几步。 下面是一个例子: -module(my_behaviour). -export([behaviour_info/1]). behaviour_info(callbacks) -> [{init,1}, {handle, 2}]; behavio ...
Global site tag (gtag.js) - Google Analytics