panjf的个人博客分享 http://blog.sciencenet.cn/u/panjf

博文

用scala写情书

已有 3925 次阅读 2010-12-1 15:42 |个人分类:programming language|系统分类:科研笔记

http://www.douban.com/note/99054407/这个链接,

号称是用代码写的爱情诗歌,我表示那写的也太坑爹了,

所以今天给大家展示一下怎么用代码写的情书应该是怎么样的,

顺便边给大家推荐一下scala这门我最喜爱的跑在JVM上的语言(smoothly integrates features of object-oriented and functional languages)。


Scala语言: panjf_love_letter_1
01 //首先定义爱的那个对象
02
03 object MyLover {
04 }
05
06
07
08 //然后就是定义自己了,actor是scala里面推荐使用的线程模型,这个模型主要借鉴了erlang的线程模型
09
10 object Junfeng extends Actor {
11   
12     private val mylover = MyLover //赋值自己爱的是谁,val关键字代表了这是个不可变对象(表达了爱你永不变哦~~)
13
14     //act函数是actor要实现的函数,定义的就是这个线程的行为
15     def act() {
16         loop {  //loop是实现一个死循环,也是表达永不变心的一种方式哦~~
17             react { //react里面实现是接收到相应的信息之后采用什么行为,下面的case就表示如果接收到的是自己心爱的人,那么就表示自己仍然很爱她啊~~
18                 case this.mylover => println("Hey, I'm still here~~ I love you~~")
19                 case _ => println("Er...")
20             }
21         }
22     }
23
24 }
25
26
27
28 //然后我们写个程序来测试一下这个效果
29
30 object Main {
31   def main(args : Array[String]) : Unit = {
32       Junfeng.start //用来启动这个actor
33       Junfeng ! "Someone else" //!是scala里面给actor发送消息的方式
34       Junfeng ! MyLover
35       Junfeng ! "Someone else"
36       Junfeng ! MyLover
37       Junfeng ! MyLover
38   }
39 }

输出:

Er...
Hey, I'm still here~~ I love you~~
Er...
Hey, I'm still here~~ I love you~~
Hey, I'm still here~~ I love you~~

 

可以看到每次接收到自己心爱的人的信息都是输出I love you哦~~



https://blog.sciencenet.cn/blog-116673-389289.html

上一篇:学习Seam
收藏 IP: .*| 热度|

2 陈飞 xiangwen

发表评论 评论 (1 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-11-24 01:56

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部