
erlang
小咸鱼_
这个作者很懒,什么都没留下…
展开
-
erlang中的record
record记录通过下面这种语法定义: -record(Name,{ key1, key2, ... key}).其中Name是记录的名字,key1,key2等是字段名。(注意,是小写开头的原子) 下面一个记录的例子: -record(原创 2017-07-01 19:46:34 · 3524 阅读 · 0 评论 -
protobuff协议在C/S传输数据注意的问题
在C/S中,使用protobuff协议传输数据,首先需要在.proto文件中写message。例如: message up_msg{ optional unit32 _id = 1; optional string _name = 2; optional set_line_up = 3; } message set_line_up{ repeated line_up _line_up =原创 2017-07-12 11:33:02 · 2096 阅读 · 0 评论 -
erlang的消息发送和接收
Pid ! Msg 用于消息发送,它的意思是,向进程id为Pid的进程发送消息,该消息为Msg。例如 Pid ! {inch,3} 表示向进程id为Pid的进程发送消息{inch,3} 在消息发送之前,消息中的所有参数都会被求值。 因此: Pid !{2,5*6} 发送的消息是:Pid !{2,30} receive原语用于接收消息。receive语法如下: re原创 2017-06-27 15:11:06 · 4630 阅读 · 0 评论 -
erlang的case和if
case Expr of Pattern1 [when Guard1] -> Seq1; Pattern2 [when Guard2] -> Seq2; ... PatternN [when GuardN] -> SeqN end 首先,对Expr求值,然后,Expr的值将依次与模式Pattern1、Pattern2……PatternN进行匹配,直到匹配成功。如果原创 2017-06-27 16:23:13 · 4056 阅读 · 0 评论 -
Erlang并发编程之消息传递
下面是erlang教程的一份代码,其中创建了两个进程,其中一个重复向另一个发送消息。 module(tut15). -export([start/0, ping/2, pong/0]). ping(0, Pong_PID) -> Pong_PID ! finished, io:format("ping finished~n", []); ping(N, Pong_PID) ->原创 2017-06-27 10:29:19 · 1754 阅读 · 0 评论 -
erlang复杂链表查找
链表中存放的是record,record中还有record字段,现在需要在链表中查找record的record某字段,例如: -record(user_shop,{ shop_name, id }). -record(user,{ uid, name, user_shop=[] }). init()-> User = #user{uid=21,name=lujie,use原创 2017-07-06 11:55:06 · 2073 阅读 · 0 评论