一方面使用在线字典的时候感觉速度不快,另一方面在学习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。不过似乎有些问题,输入了若干次之后,要等到关闭的一刹那,所有的翻译结果才回来。很搞。感觉似乎不像是哪里没控制好出的问题。不知道是不是因为我的网络有问题。
分享到:
相关推荐
3. **互操作性**:Scala与Java有着良好的互操作性,可以在Scala代码中调用Java类库,反之亦然,这大大扩展了Scala的应用范围。 4. **信任程序员**:Scala赋予开发者强大的控制权,允许他们编写高效的代码,同时也...
在面试准备时,熟悉并理解以上算法的原理、时间复杂度和空间复杂度,以及如何用Scala进行实现,对于提高面试竞争力有着至关重要的作用。通过实践这些算法代码,你可以加深对算法的理解,提升编程技巧,并更好地应对...
Scala的播放服务 特性和对象的集合,这些特性和对象使在Scala中为Android编程时更方便使用。 问题/贡献 请注意,到目前为止,该库尚未经过大量测试。... 您可以添加原始Google Play Api[Options]实例,并调用
4. **构建gRPC服务**:在Scala中定义gRPC服务接口,实现服务端逻辑,以及启动gRPC服务器。 5. **gRPC客户端**:在Scala中创建gRPC客户端,连接到服务端并调用RPC方法。 6. **gRPC与Protobuf的结合**:演示如何使用...
Google翻译API是Google提供的一个服务,能够支持多种语言之间的翻译,它基于先进的机器学习技术,能够实现文本、网页等内容的自动翻译。 这个压缩包"GoogleTranslation"中可能包含以下内容: 1. 插件的安装指南:...
使用`geocoder`库时,需要注意的是Google Maps API的使用限制,包括免费调用次数和速率限制。对于商业用途,可能需要购买Google Maps API的付费许可证以获得更高的调用配额。 总的来说,`geocoder`是Scala开发人员...
【标题】"Play框架应用程序(Scala)中嵌入的akka-grpc服务示例"是针对使用Play Framework和Akka gRPC在Scala环境下构建Web应用的一个实例。这个项目旨在展示如何将gRPC通信机制整合到Play框架中,利用Akka Streams...
接着,他们可以按照项目提供的示例或者API文档来调用客户端的接口,实现与Google Maps API的通信。对于测试,specs2框架提供了一套完整的测试工具,帮助开发者验证客户端的功能是否正常工作。 总的来说,这个压缩包...
对于google-api-services-admin-reports,开发者可以深入理解Google API的使用,而对于scala-pandoc,开发者则可以学习到如何用Scala来包装和调用外部工具。 详细知识点: 1. **Google管理API**:这是一个允许管理...
结合这两个工具,开发者可以在命令行上运行一个由Error Prone检查过的、使用argparse4s处理输入的Java或Scala应用。这样的组合,不仅简化了命令行接口的设计,也增强了代码质量,使得开发过程更加顺畅,降低了维护...
在本文中,我们将深入探讨如何使用Google Cloud Functions(GCF)和Firebase Firestore来实现一个自动门系统,该系统会在特定文档发生更改时触发,并通过Twilio API发送指令以控制物理门的开关。这个项目主要使用了...
在实际使用TensorFlowOnSpark时,可以有两种主要的编程语言选择:Python和Scala。Python是TensorFlow的主要接口语言,而Scala则是Spark的原生语言。TensorFlowOnSpark提供了对这两种语言的API支持,使得用户可以根据...
此外,考虑到翻译服务通常涉及与其他服务的交互,如调用外部翻译API(如Google Translate或Microsoft Translator),罗塞塔可能会采用**异步编程模型**,以非阻塞方式等待I/O操作完成,从而提高资源利用率和响应速度...
由于技术限制,翻译可能会存在一些误差,所以用户在使用文档时应仔细校对理解,并及时反馈错误以完善文档内容。在学习Kotlin的过程中,用户应当参考最新的官方文档,以掌握语言最新的特性和技术进展。
例如,使用 `Future` 可以实现非阻塞的请求处理,提高 Web 服务器的吞吐量。在大数据处理中,可以利用 `Future` 并行处理大量数据,减少计算时间。Guava 的 `ListenableFuture` 更是在回调机制上提供了便利,使得...
本文将深入探讨如何使用Google Maps API与Scala中的Lift框架进行交互。 Lift是基于Scala构建的一个现代Web框架,它以其简洁、安全和高性能而受到开发者喜爱。结合Google Maps API,Lift可以创建出动态、交互式的...
描述中提到的“sbt-sonatype.zip”表明这是一个使用Scala或Java开发的项目,并且使用了SBT(Simple Build Tool)作为构建工具。SBT是Scala社区广泛使用的构建工具,它允许开发者以声明式方式定义项目构建和依赖关系...
Lift是用Scala编写的Web开发框架,它强调安全性、简洁性和可测试性。AngularJS则是Google推出的一个流行的JavaScript MVC(Model-View-Controller)框架,用于构建动态的单页应用程序(SPA)。 "ng-js_2.5lift-ng-...
此外,Google搜索背后的复杂性在于它调用了50多个内部服务,这些服务由C++或Java编写,确保了搜索的高效性和准确性。 接下来,我们关注Facebook。Facebook在社交网络领域的崛起,伴随着其技术架构的不断演进。从一...