标签:
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