`
regular
  • 浏览: 77619 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用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。不过似乎有些问题,输入了若干次之后,要等到关闭的一刹那,所有的翻译结果才回来。很搞。感觉似乎不像是哪里没控制好出的问题。不知道是不是因为我的网络有问题。
1
2
分享到:
评论

相关推荐

    A Brief Introduction to Scala

    3. **互操作性**:Scala与Java有着良好的互操作性,可以在Scala代码中调用Java类库,反之亦然,这大大扩展了Scala的应用范围。 4. **信任程序员**:Scala赋予开发者强大的控制权,允许他们编写高效的代码,同时也...

    scala程序员面试算法宝典代码

    在面试准备时,熟悉并理解以上算法的原理、时间复杂度和空间复杂度,以及如何用Scala进行实现,对于提高面试竞争力有着至关重要的作用。通过实践这些算法代码,你可以加深对算法的理解,提升编程技巧,并更好地应对...

    playservices-scala:Android库,可在Scala中方便地使用Google Play服务

    Scala的播放服务 特性和对象的集合,这些特性和对象使在Scala中为Android编程时更方便使用。 问题/贡献 请注意,到目前为止,该库尚未经过大量测试。... 您可以添加原始Google Play Api[Options]实例,并调用

    scala-protobuf-docs:解释如何在Scala中使用协议缓冲区和gRPC的文档

    4. **构建gRPC服务**:在Scala中定义gRPC服务接口,实现服务端逻辑,以及启动gRPC服务器。 5. **gRPC客户端**:在Scala中创建gRPC客户端,连接到服务端并调用RPC方法。 6. **gRPC与Protobuf的结合**:演示如何使用...

    GoogleTranslation.zip

    Google翻译API是Google提供的一个服务,能够支持多种语言之间的翻译,它基于先进的机器学习技术,能够实现文本、网页等内容的自动翻译。 这个压缩包"GoogleTranslation"中可能包含以下内容: 1. 插件的安装指南:...

    geocoder:适用于Scala的Google Maps地理编码库

    使用`geocoder`库时,需要注意的是Google Maps API的使用限制,包括免费调用次数和速率限制。对于商业用途,可能需要购买Google Maps API的付费许可证以获得更高的调用配额。 总的来说,`geocoder`是Scala开发人员...

    play-scala-grpc-example:Play框架应用程序(Scala)中嵌入的akka​​-grpc服务的示例

    【标题】"Play框架应用程序(Scala)中嵌入的akka-grpc服务示例"是针对使用Play Framework和Akka gRPC在Scala环境下构建Web应用的一个实例。这个项目旨在展示如何将gRPC通信机制整合到Play框架中,利用Akka Streams...

    specs2_2.10-2.4.3-scalaz-7.0.6.zip

    接着,他们可以按照项目提供的示例或者API文档来调用客户端的接口,实现与Google Maps API的通信。对于测试,specs2框架提供了一套完整的测试工具,帮助开发者验证客户端的功能是否正常工作。 总的来说,这个压缩包...

    google-api-services-admin-reports_v1-rev16-1.14.2-beta.zip

    对于google-api-services-admin-reports,开发者可以深入理解Google API的使用,而对于scala-pandoc,开发者则可以学习到如何用Scala来包装和调用外部工具。 详细知识点: 1. **Google管理API**:这是一个允许管理...

    argparse4s_2.9.3-0.2.2.zip

    结合这两个工具,开发者可以在命令行上运行一个由Error Prone检查过的、使用argparse4s处理输入的Java或Scala应用。这样的组合,不仅简化了命令行接口的设计,也增强了代码质量,使得开发过程更加顺畅,降低了维护...

    自动门:触发Firestore文档更改并调用Twilio API的Google Cloud Function

    在本文中,我们将深入探讨如何使用Google Cloud Functions(GCF)和Firebase Firestore来实现一个自动门系统,该系统会在特定文档发生更改时触发,并通过Twilio API发送指令以控制物理门的开关。这个项目主要使用了...

    TensorFlowOnSpark将TensorFlow程序引入ApacheSpark集群_Python_Scala.zip

    在实际使用TensorFlowOnSpark时,可以有两种主要的编程语言选择:Python和Scala。Python是TensorFlow的主要接口语言,而Scala则是Spark的原生语言。TensorFlowOnSpark提供了对这两种语言的API支持,使得用户可以根据...

    rosetta:简单翻译微服务

    此外,考虑到翻译服务通常涉及与其他服务的交互,如调用外部翻译API(如Google Translate或Microsoft Translator),罗塞塔可能会采用**异步编程模型**,以非阻塞方式等待I/O操作完成,从而提高资源利用率和响应速度...

    Kotlin官方文档翻译

    由于技术限制,翻译可能会存在一些误差,所以用户在使用文档时应仔细校对理解,并及时反馈错误以完善文档内容。在学习Kotlin的过程中,用户应当参考最新的官方文档,以掌握语言最新的特性和技术进展。

    future:Java、Guava 和 Scala 中的 Furures 和 promise

    例如,使用 `Future` 可以实现非阻塞的请求处理,提高 Web 服务器的吞吐量。在大数据处理中,可以利用 `Future` 并行处理大量数据,减少计算时间。Guava 的 `ListenableFuture` 更是在回调机制上提供了便利,使得...

    GoogleMaps:Lift 和 GoogleMaps API

    本文将深入探讨如何使用Google Maps API与Scala中的Lift框架进行交互。 Lift是基于Scala构建的一个现代Web框架,它以其简洁、安全和高性能而受到开发者喜爱。结合Google Maps API,Lift可以创建出动态、交互式的...

    gwtp-dispatch-rpc-client-1.1.1.zip

    描述中提到的“sbt-sonatype.zip”表明这是一个使用Scala或Java开发的项目,并且使用了SBT(Simple Build Tool)作为构建工具。SBT是Scala社区广泛使用的构建工具,它允许开发者以声明式方式定义项目构建和依赖关系...

    gateway-service-as-0.5.0.zip

    Lift是用Scala编写的Web开发框架,它强调安全性、简洁性和可测试性。AngularJS则是Google推出的一个流行的JavaScript MVC(Model-View-Controller)框架,用于构建动态的单页应用程序(SPA)。 "ng-js_2.5lift-ng-...

    google、facebook、Twitter、eBay、腾讯、淘宝技术发展历程

    此外,Google搜索背后的复杂性在于它调用了50多个内部服务,这些服务由C++或Java编写,确保了搜索的高效性和准确性。 接下来,我们关注Facebook。Facebook在社交网络领域的崛起,伴随着其技术架构的不断演进。从一...

Global site tag (gtag.js) - Google Analytics