码迷,mamicode.com
首页 > 其他好文 > 详细

扩展新的控制结构

时间:2015-05-22 13:06:07      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:

1 actor {
2     var sum = 0
3     loop {
4         receive {
5             case Date(bytes) => sum += hash(bytes)
6             case GetSum(reguester) => reguester ! sum
7        }
8     }
9 }

上面的例子,是一个actor的例子

 

例子解释:

actor中首先,定义了一个本地变量sum,然后就等待在消息循环中,不断的用receive段来接收消息。

当收到Date消息,就将bytes取哈希,加到sum上,

当收到GetSum消息,就将sum发回给requester,requester是另外一个actoer。

 

从例子中,可以看出actor,loop,receive,!,就好像是语言本身内置的控制结构,但其实只是定义在actor库中的方法。

从这里就可以看出,scala可以很容易的扩展新的控制结构,使之可以像内置的控制结构一样,用起来方便,感觉像是scala本身所具有的特性一样。

扩展新的控制结构

标签:

原文地址:http://www.cnblogs.com/wlwgcdxc/p/4521996.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!