Scala中是否有任何方法可以将类代码拆分为多个文件?

Iva*_*van 5 netbeans scala

我有两个理由要问:
1.我希望有一个更好的代码碎片来促进每个功能级别
2的版本控制.我从一些注意力缺陷障碍中挣扎,我很难处理长段代码比如大类文件

为了解决这些问题,我过去常常使用C++中的include指令和部分类定义以及C#中可手动定义的可折叠区域.Scala 2.8中有没有这样的东西?

我试图在NetBeans IDE中使用editor-fold标签,但不幸的是它在Scala编辑器中不起作用:-(

更新:据我所知,Scala中没有这样的设施.所以我想问一下:与Scala作者有任何联系的人,或者他们的Bugzilla(或者他们使用的任何东西)的帐户,请给他们一个想法 - 他们应该想到介绍一些这样的东西(我很着迷例如,通过C#区域和部分类,以及简单的旧包括看起来像一个方便的工具,通过简洁,恕我直言使Scala更加美丽.

Mia*_*rke 14

如何用特质做到这一点?你这样定义:

trait Similarity 
{
  def isSimilar(x: Any): Boolean
  def isNotSimilar(x: Any): Boolean = !isSimilar(x)
}
Run Code Online (Sandbox Code Playgroud)

...然后你就像这样使用它:

class Point(xc: Int, yc: Int) extends Similarity 
{
 var x: Int = xc
 var y: Int = yc
 def isSimilar(obj: Any) =
    obj.isInstanceOf[Point] &&
    obj.asInstanceOf[Point].x == x
}
Run Code Online (Sandbox Code Playgroud)

如果班级Point较大,您可以将其进一步分为特征,从而实现您想要的分工.但请注意,我不认为这是可取的,因为除非您已经深入了解,否则很难对代码进行良好的概述.但是,如果你能以一种很好的方式打破它,你可能会从中获得一些漂亮的,可重复使用的块,所以最后它可能仍然值得做.

祝你好运!


Mus*_*med 5

//file A.scala
trait A { self: B =>
....
}

//file B.scala
trait B { self: A =>
....
}

//file C.scala
class C extends A with B
Run Code Online (Sandbox Code Playgroud)