Tag: 斯卡拉

case caseinheritance的* so *错误是什么?

在寻找别的东西的时候,很偶然的,我偶然发现了一些关于恶意案例类inheritance的评论。 有这样的东西,叫做ProductN ,可怜的人,国王,精灵和巫师,以及某种非常理想的财产如何失去案例类inheritance。 那么case类inheritance有什么问题呢?

Lift框架与Ruby on Rails或Django一样“容易”吗?

只是想知道有没有人与三个经验。 我已经通过一些RoR阅读和使用Django。 他们似乎很容易使用。 这两个电梯是“轻松”吗? 我知道容易是主观的,在这里没有语境。 我的意思是在一个非常高的水平和一般意义上。

斯卡拉types系统与Haskell的缺点?

我已经读过,Scala的types系统被Java的互操作性所削弱,因此不能像Haskell的types系统那样执行一些相同的function。 这是真的? 是因为types擦除的弱点,还是我在各方面都是错的? 这是不同的原因斯卡拉没有typeclasses?

函数式编程,斯卡拉地图和折叠左

什么是一些好的教程折叠左? 原始问题,从删除恢复为其他答案提供上下文: 我正在尝试实现一种方法来查找矩形,圆形,位置和所有扩展形状的组的方法。 组基本上是一个形状的数组 abstract class Shape case class Rectangle(width: Int, height: Int) extends Shape case class Location(x: Int, y: Int, shape: Shape) extends Shape case class Circle(radius: Int) extends Shape case class Group(shape: Shape*) extends Shape 我得到了除了组1之外的所有三个边界框。 所以,现在对于边界框方法,我知道我应该使用映射,并向左折叠组,但我无法find创build它的确切语法。 object BoundingBox { def boundingBox(s: Shape): Location = s match { case Circle(c)=> new Location(-c,-c,s) case […]

集合,函数和Eq混淆

最近有一个关于Sets的讨论,Scala支持zip方法,以及如何导致bug,例如 scala> val words = Set("one", "two", "three") scala> words zip (words map (_.length)) res1: Set[(java.lang.String, Int)] = Set((one,3), (two,5)) 我想这很清楚Set s不应该支持zip操作,因为这些元素没有sorting。 然而,有人提出问题是Set不是一个真正的函子,也不应该有一个map方法。 当然,你可以通过映射到一个集合,让自己陷入麻烦。 现在切换到Haskell, data AlwaysEqual a = Wrap { unWrap :: a } instance Eq (AlwaysEqual a) where _ == _ = True instance Ord (AlwaysEqual a) where compare _ _ = EQ […]

不同的Scala Actor实现概述

我试图find“正确”的演员实施。 我意识到有一堆他们,挑一个有点混乱。 就我个人而言,我对远程演员特别感兴趣,但是我认为一个完整的概述会对其他人有所帮助。 这是一个相当普遍的问题,所以请随时回答你所知道的实现。 我知道下面的Scala Actor实现(SAI)。 请添加缺less的。 斯卡拉2.7(区别于) 斯卡拉2.8 Akka( http://www.akkasource.org/ ) 电梯( http://liftweb.net/ ) Scalaz( http://code.google.com/p/scalaz/ ) 这些SAI的目标用例是什么(轻量级与“重”的企业级框架)? 他们是否支持远程演员? 远程参与者在SAI中有什么缺点? 他们的performance如何? 社区有多活跃? 他们开始有多容易? 文档有多好? 他们有多容易延伸? 他们有多稳定? 哪些项目正在使用它们? 他们有什么缺点? 他们的devise原则是什么? 他们是基于线程还是基于事件(接收/反应)还是两者? 嵌套接收 热衷于演员的消息循环

在所有Scalatesttesting之前或之后做一些事情

我有一套scalatesttesting,用于testingRESTful API的不同端点。 我真的希望他们分成不同的文件以获得最佳组织。 我的问题是如何在所有的testing开始之前(在我的情况下是一个HTTP服务器,但不pipe它是什么),并在所有的testing完成后closures它。 我知道BeforeAndAfterAll,但是只有在一个testing文件里面/之后才能完成。 我需要这样的东西,但是对于所有的testing,例如: – 在testing之前启动http服务器 – 运行所有testing套件 – closureshttp服务器

如何声明空列表,然后在scala中添加string?

我有这样的代码: val dm = List[String]() val dk = List[Map[String,Object]]() ….. dm.add("text") dk.add(Map("1" -> "ok")) 但它会抛出运行时java.lang.UnsupportedOperationException。 我需要声明空列表或空地图,以及稍后在代码中需要填充的地图。

相当于java.util.ArrayList的Scala

我正在Scala做一个项目,但是对于这个语言来说还是比较新的,并且有一个Java背景。 我看到Scala没有ArrayList,所以我想知道Scala的什么样的Java ArrayList被调用,以及Java和Scala版本之间有什么重要的区别。 编辑:我不寻找一个特定的行为,以至于内部表示(数据存储在一个数组中,但整个数组不可见,只有你使用的部分)。

scala Iterable#map与Iterable#flatMap

Iterable的map和flatMap函数有什么区别?