用Scala实现的调用Google在线翻译

一方面使用在线字典的时候感觉速度不快,另一方面在学习Scala,因此自己用Scala和google-translate-api-java做了一个。用api的确方便,根本不用处理诸如包装,发送,接收,结果解包之类的事情。


package cn.sh.huang.translate

import com.google.api.translate._
import scala.actors.Actor._
import java.io.BufferedReader
import java.io.InputStreamReader

object Test {
def main(args : Array[String]) {
// val prop = System.getProperties
// prop.put("http.proxyHost", "url.here")
// prop.put("http.proxyPort", "8080")
val echoActor = actor {
def execute() {
val onJob = receive {
case "quit" =>
false
case msg : String =>
println(Translate.translate(
msg, Language.ENGLISH,
Language.CHINESE_SIMPLIFIED))
true
}
if (onJob) execute()
}
execute()
}
val reader = new BufferedReader(new InputStreamReader(System.in))
def translate() {
val word = reader.readLine
echoActor ! word
if (word != "quit") translate ()
}
translate()
}
}


使用了Scala的actor机制,好处是查询和返回是异步关系。而且全部使用了函数式的方式,递归。没有while和var。不过似乎有些问题,输入了若干次之后,要等到关闭的一刹那,所有的翻译结果才回来。很搞。感觉似乎不像是哪里没控制好出的问题。不知道是不是因为我的网络有问题。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值