Tag: 斯卡拉

Scala中的多个Actor是如何实现的?

随着Scala 2.9.0的发布,Typesafe Stack也被宣布,它将Scala语言与Akka框架相结合。 现在,尽pipeScala在其标准库中有演员,但Akka使用自己的实现。 而且,如果我们寻找其他的实现,我们也会发现Lift和Scalaz也有实现。 那么,这些实现有什么区别呢?

使用Scala中的Option包装Java中的null返回方法?

假设我有一个方法session.get(str: String): String但不知道它是否会返回一个string或null,因为它来自Java。 有没有一种更简单的方法来对待这个Scala而不是session.get("foo") == null ? 也许有些魔法适用于ToOption(session.get("foo")) ,然后我可以用Scala的方式处理它 ToOption(session.get("foo")) match { case Some(_) =>; case None =>; }

如何打印RDD的内容?

我试图将集合的内容打印到Spark控制台。 我有一个types: linesWithSessionId: org.apache.spark.rdd.RDD[String] = FilteredRDD[3] 我使用这个命令: scala> linesWithSessionId.map(line => println(line)) 但是这是印刷的: res1:org.apache.spark.rdd.RDD [Unit] = MappedRDD [4] at map at:19 如何将RDD写入控制台或将其保存到磁盘,以便查看其内容?

Scala:Scala集合中的Traversable和Iterable特性有什么区别?

我已经看了这个问题,但仍然不明白Iterable和Traversable特性之间的区别。 有人可以解释吗?

什么是Java的ClassName.class的Scala等价物?

我如何获得Scala Class的实例? 在Java中,我可以这样做: Class<String> stringClass = String.class; 在Scala中相当于什么?

什么是Scala的延续,为什么使用它们?

我刚刚完成了Scala编程 ,我正在研究Scala 2.7和2.8之间的变化。 看起来最重要的是continuation插件,但是我不明白它对于它的作用有多大用处。 我已经看到,这对于asynchronousI / O非常有用,但我一直无法找出原因。 这方面一些比较受欢迎的资源是: 划定延续和斯卡拉 转到斯卡拉 2.8的味道:延续 定界延续解释(在斯卡拉) 而这个问题堆栈溢出: Scala 2.8和Scala 2.7最大的区别是什么? 不幸的是,这些参考文献都没有试图定义什么延续或者什么是移位/重置function,我还没有find任何参考。 我还没有猜到链接文章中的任何例子是如何工作的(或者他们做了什么),所以帮助我的一种方法可能是通过其中一个样本逐行进行。 即使是第三篇文章中的这个简单的一个: reset { … shift { k: (Int=>Int) => // The continuation k will be the '_ + 1' below. k(7) } + 1 } // Result: 8 为什么是结果8? 这可能会帮助我开始。

何时使用参与者而不是消息解决scheme(如WebSphere MQ或Tibco Rendezvous)?

我已经阅读过什么样的devise决定会赞成Scala的Actor而不是JMS的问题和答案? 。 通常,我们使用已存在多年的消息传递解决scheme:使用诸如WebSphere MQ或Apache ActiveMQ之类的JMS实现进行点对点通信,或者使用Tibco Rendevous进行多播消息传递。 它们非常稳定,经过validation,可提供高可用性和高性能。 尽pipe如此,configuration和设置似乎比阿卡更复杂。 何时以及为什么我应该使用Akka来处理上述产品(WebSphere MQ或ActiveMQ)已经成功使用的情况? 为什么我应该在未来的项目中考虑使用Akka而不是WebSphere MQ或Tibco RV? 什么时候我应该避免阿卡? 它是否提供与其他解决scheme相同的高可用性和性能? 或者将Akka与其他消息中间件进行比较,这是不是一个好主意? 也许除了JMS(点对点),TibcoRV(多播)和Akka之外,JVM环境中还应该考虑另一个消息传递解决scheme?

斯卡拉有一个好的math/统计库吗?

我正在寻找一个好的math和统计数据的scala开源库。 希望像Apache Math或Colt一样,但在Scala中实现。 任何人都可以指向正确的方向吗?

如何列出scala子目录中的所有文件?

是否有一个很好的“scala-esque”(我想我的意思是function)的方式recursion列出目录中的文件? 匹配一个特定的模式呢? 例如recursion地在c:\temp匹配"a*.foo"所有文件。

私人 vs私人

在斯卡拉我看到这样的function作为对象私有variables。 从我不是非常丰富的Java背景中,我学会了closures所有东西(使之成为私有),并在必要时打开(提供访问器)。 Scala引入了更加严格的访问修饰符。 我应该总是默认使用它? 还是应该仅在某些特定情况下使用它,即使是对于同一类的对象,我也需要显式限制更改的字段值? 换句话说,我应该如何select class Dummy { private var name = "default name" } class Dummy { private[this] var name = "default name" } 第二个是更严格的,我喜欢它,但我应该总是使用它,或者只有当我有一个强有力的理由? 编辑:正如我在这里看到私人[这]只是一些子情况下,而不是我可以使用其他修饰:“包,类或单身对象”。 所以我会留下一些特殊情况。