Scala基本语法(二)
来源:互联网 发布:旅行商问题和背包算法 编辑:程序博客网 时间:2024/06/07 04:56
Point 1:Actor
package com.scala.learnimport scala.actors._, Actor._object Actor1 { def main(args: Array[String]) = { val badActor = actor { while (true) { //nexttpule receive { case msg => println(msg); reply("gagagagag"); } } } println("Do ya feel lucky, punk?");// println(badActor ! "dddddddddddddd"); //! 异步发送消息 //这里的println打印的是返回来的值,也就是reply中的值 println(badActor ! "mmmmmmmmmmmmmmm"); }}
Point 2:
package com.scala.learnimport scala.actors._, Actor._object Actor2 { case class Speak(line: String) case class Gesture(bodyPart: String, action: String) case class NegotiateNewContract() def main(args: Array[String]) = { val badActor = actor { receive { case NegotiateNewContract => println("I won't do it for less than $1 million!") case Speak(line) => println(line) case Gesture(bodyPart, action) => println("(" + action + "s " + bodyPart + ")") case _ => println("Huh? I'll be in my trailer.") } }// badActor ! NegotiateNewContract// badActor ! Speak("Do ya feel lucky, punk?")// badActor ! Gesture("face", "grimaces")// badActor ! Speak("Well, do ya?") badActor ! "Well, do ya?" Thread.sleep(3000); }}
Point 3:
package com.scala.learnimport scala.actors._, Actor._object Actor3 { case class Speak(line : String); case class Gesture(bodyPart : String, action : String); case class NegotiateNewContract(); case class ThatsAWrap(); def main(args : Array[String]) = { val badActor = actor { var done = false while (! done) //相当于true { receive { case NegotiateNewContract => System.out.println("I won't do it for less than $1 million!") case Speak(line) => System.out.println(line) case Gesture(bodyPart, action) => System.out.println("(" + action + "s " + bodyPart + ")") case ThatsAWrap => System.out.println("Great cast party, everybody! See ya!") done = true case _ => System.out.println("Huh? I'll be in my trailer.") } } } badActor ! NegotiateNewContract// badActor ! Speak("Do ya feel lucky, punk?") // badActor ! Gesture("face", "grimaces") // badActor ! Speak("Well, do ya?") // badActor ! ThatsAWrap } }
Point 4:
package com.scala.learnimport scala.actors._, Actor._object Actor4 { case class Speak(line : String); case class Gesture(bodyPart : String, action : String); case class NegotiateNewContract(); case class ThatsAWrap(); def main(args : Array[String]) = { def ct = "Thread " + Thread.currentThread().getName() + ": " val badActor = actor { var done = false while (! done) { receive { case NegotiateNewContract => System.out.println(ct + "I won't do it for less than $1 million!") case Speak(line) => System.out.println(ct + line) case Gesture(bodyPart, action) => System.out.println(ct + "(" + action + "s " + bodyPart + ")") case ThatsAWrap => System.out.println(ct + "Great cast party, everybody! See ya!") done = true case _ => System.out.println(ct + "Huh? I'll be in my trailer.") } } } System.out.println(ct + "Negotiating...") badActor ! NegotiateNewContract System.out.println(ct + "Speaking...") badActor ! Speak("Do ya feel lucky, punk?") System.out.println(ct + "Gesturing...") badActor ! Gesture("face", "grimaces") System.out.println(ct + "Speaking again...") badActor ! Speak("Well, do ya?") System.out.println(ct + "Wrapping up") badActor ! ThatsAWrap } }
Point 5:
package com.scala.learnimport scala.actors.Actor/*给Actor发消息 */class HelloActor extends Actor{ def act(){ while (true){ receive{ case name:String => println("Hello, " + name) case money:Int => println("How much? " + money) case _ => "other" } } }}object HelloActor{ def main(args: Array[String]) { val helloActor = new HelloActor helloActor.start() helloActor ! 100 }}
Point 6:
package com.scala.learnimport scala.actors.Actor/*给Actor发送case class的消息 */case class Register(username: String, password:String)case class Login(username: String , password:String)class UserManagerActor extends Actor{ def act{ while (true){ receive{ case Login(username, password) => println("login: " + username + ": " + password) case Register(username, password) => println("register: " + username + ": " + password) } } }}object UserManagerActor{ def main(args: Array[String]) { val userActor = new UserManagerActor userActor.start() userActor ! Register("Aaron", "123") userActor ! Login("Aaron", "123") }}
Point 7:
package com.scala.learnimport scala.actors.Actor/*Actor之间相互收发消息 */case class Message(content:String, sender:Actor)class YasakaActor extends Actor{ def act(){ while (true){ receive{ case Message(content,sender) => {println("Aaron received: " + content); sender ! "Yes"} } } }}class GagaActor(val yasakaActor: YasakaActor) extends Actor{ def act{ yasakaActor ! Message("Hello, Aaron, I'm gaga. Are you free now?", this) var flag = true while (flag){ receive{ case response:String => println("gaga received: "+ response) case response:Int => println("you love xuruyun. you don't love me anymore !"); flag=false } } }}object Message { def main(args: Array[String]) { val yasakaActor = new YasakaActor val gagaActor = new GagaActor(yasakaActor) yasakaActor.start() gagaActor.start() }}
阅读全文
0 0
- Scala基本语法(二)
- Scala基本语法(一)
- Scala基本语法(三)
- Scala基本语法(四)
- Scala基础应用(1)- 基本语法
- 第一章 scala 基本语法
- scala 基本语法
- Scala基本语法初探
- scala 基本语法-ok
- scala 基本语法-cp
- scala基本语法-1
- scala 基本语法_2
- Scala基本语法
- scala基本语法学习
- Scala基本语法学习
- scala基本语法
- Scala基本语法
- scala基本语法
- The type org.springframework.dao.support.DaoSupport cannot be resolved. It is indirectly referenced
- 基于libRTMP的流媒体直播之 AAC、H264 推送
- 选择排序
- 排序之冒泡排序,选择排序
- spark程序提交设置
- Scala基本语法(二)
- 压缩索引
- Android TextView 文字实现左右对齐(分散对齐、两端对齐)的一个思路
- 三元组(a,b,c)标识a币种到b币种的汇率为c,反向亦成立。 输入一堆这样的三元组,再指定两个币种x y,问x->y的汇率是多少? 请编程实现,并给出时间、空间复杂度。
- Elasticsearch-5.5.0安装head插件
- Spring + MyBatis配置详细教程
- 理解UIView的绘制
- 从关系型数据库到非关系型数据库
- Zstack使用IAR开发生成Hex文件并且兼容软件仿真