erlang第五天总结

1.进程里的变量是私有的,erlang shell本身是一个进程,所以当打开多个erlang shell执行gen_tcp:conncet返回的Socket是相同,而在每一个erlang shell里面多次调用gen_tcp:connect返回的Socket是不同

2.gen_tcp:recv会阻塞,直到收到消息为止。gen_tcp:recv(Socket,N),每次从Socket里读取N个字节,如果N为0,则返回全部字节。一段二进制数据可以分开几段读,比如先读3个字节 gen_tcp:recv(Socket,3),再读5个字节 gen_tcp:recv(Socket,5) ......直到所有数据读完。{active,false}只能用gen_tcp:recv去接收数据。

3.<<Size:4, Data:Size/binary,...>>如果Size是一个已绑定变量,则可以通过模式匹配获得Data的值

4.可通过模式匹配记录字段或者创建新记录的函数,如下

function(#state{status=S,count=C} = X) ->

        X#state{status=start}

5.在if或case里面的变量属于局部变量,如果在if或case外部引用这个变量,编译器会报错,提示这个变量在if或case里面是unsafe,如果真的要用这个变量,可以在if或case里面将这个变量作为返回值绑定给新变量



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值